Làm thế nào để chạy một tập lệnh shell trong nền và bỏ qua một nohup
2024-10-23 13:20:14
tin tức
tiyusaishi
Trong thế giới lập trình máy tính và quản trị hệ thống Linux, các tập lệnh shell là một công cụ mạnh mẽ và tiện dụng có thể được sử dụng để tự động hóa việc thực hiện một loạt các lệnh và quy trình. Nhưng đôi khi chúng tôi có thể muốn chạy một số tập lệnh nhất định một cách âm thầm trong nền sẽ tiếp tục thực thi ngay cả khi chúng tôi thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Trong trường hợp này, chúng ta cần sử dụng lệnh nohup. Bài viết này sẽ trình bày chi tiết cách chạy tập lệnh shell trong nền và bỏ qua nohup.
1. Hiểu các tập lệnh shell
Trước hết, chúng ta cần biết shell script là gì. Nói một cách đơn giản, tập lệnh shell là một tập hợp các lệnh được thực thi trên shell (giao diện dòng lệnh). Bằng cách tổ chức các lệnh này thành các tệp theo thứ tự logic, chúng ta có thể tạo các tập lệnh shell. Nó có thể được thực thi bằng cách sử dụng các trình thông dịch shell khác nhau như bash, zsh, v.v.
2. Tại sao tôi cần chạy các tập lệnh trong nền?
Trong một số trường hợp, chúng tôi có thể cần chạy một số tác vụ nhất định trong một thời gian dài mà không yêu cầu sự chú ý theo thời gian thực. Tại thời điểm này, chúng ta có thể đặt các tác vụ này đang chạy trong nền để chúng có thể tiếp tục ngay cả khi chúng ta đóng thiết bị đầu cuối hoặc ngắt kết nối mạng. Điều này rất hữu ích cho các chương trình hoặc tác vụ chạy dài cần được thực hiện theo lịch trình.
Phần 3: Làm thế nào để sử dụng lệnh nohup?
Lệnh nohup là một công cụ được sử dụng trong Linux để chạy các lệnh bỏ qua hang-up. Nó bắt đầu một phiên và gửi các lệnh cần thiết để chạy đến nền của phiên cho đến khi nó được thực thi. Lệnh này tiếp tục thực thi ngay cả khi thiết bị đầu cuối đã đóng. Cú pháp cơ bản để sử dụng nohup như sau:
'nohupcommand>/dev/null2>&1&'
Trong đó:
-command là lệnh hoặc script bạn cần chạy.
-'/dev/null' có nghĩa là chuyển hướng đầu ra đến một thiết bị trống, tức là bỏ qua đầu ra. Điều này rất hữu ích cho các tác vụ nền không yêu cầu bạn xem đầu ra.
- '2>&1' cho biết chuyển hướng đầu ra lỗi tiêu chuẩn sang đầu ra tiêu chuẩn. Thao tác này chuyển hướng tất cả đầu ra đến cùng một nơi (trong trường hợp này là '/dev/null').
-'&' chỉ ra rằng lệnh đang chạy trong nền. Sử dụng biểu tượng này để khiến các lệnh thực thi không đồng bộ trong nền mà không chặn phiên đầu cuối hiện tại. Nếu lệnh của bạn cần được thực thi trong nền mà không bị ảnh hưởng bởi việc treo phiên đầu cuối hiện tại, bạn cần sử dụng lệnh nohup với biểu tượng này.
Phần 4: Làm thế nào để chạy một tập lệnh shell với nohup?
Các bước để chạy một tập lệnh shell với nohup tương tự như sử dụng các lệnh khác. Chỉ cần thay thế tên của tập lệnh bạn muốn chạy bằng phần lệnh của lệnh trên. Chẳng hạn:
'nohup./myscript.sh>/dev/null2>&1&'
Lệnh này sẽ chạy một tập lệnh có tên myscript.sh trong nền và bỏ qua tất cả đầu ra. Bằng cách này, tập lệnh sẽ tiếp tục thực thi ngay cả khi cửa sổ terminal bị đóng. Để giữ cho các tập lệnh chạy ngay cả sau khi phiên kết thúc hoặc hệ thống khởi động lại, bạn cũng có thể cần phải cấu hình cron tác vụ theo lịch trình hoặc sử dụng các công cụ lập lịch hệ thống khác để bắt đầu các tập lệnh này theo định kỳ. Phương pháp cụ thể có thể được xác định theo nhu cầu của hệ thống của bạn. Sau khi cấu hình hoàn tất, bạn có thể xem đầu ra trong tệp nhật ký hoặc lưu đầu ra để phân tích sau. Sử dụng Nohup giúp đơn giản hóa rất nhiều quy trình quản lý tác vụ tự động lâu dài và tăng năng suất. Tuy nhiên, cần cẩn thận để quản lý và giám sát đúng các tác vụ nền này để ngăn chặn việc tiêu thụ tài nguyên quá mức gây ra các vấn đề về hiệu suất hệ thống. Đó là phần giới thiệu cơ bản và hướng dẫn từng bước về cách chạy các tập lệnh shell trong nền và bỏ qua việc treo máy! Bằng cách hiểu và áp dụng kiến thức này, bạn có thể dễ dàng quản lý các tác vụ hệ thống của mình và tự động hóa các quy trình, mang lại sự thuận tiện hơn cho công việc hàng ngày và phát triển dự án của bạn, đồng thời tối ưu hóa việc sử dụng tài nguyên để tăng năng suất, nhớ hiểu và tôn trọng các phương pháp hay nhất đi kèm với các hệ thống và cấu hình khác nhau và luôn áp dụng các chiến lược này với môi trường và nhu cầu cụ thể của bạn. Hy vọng bạn thấy bài viết này hữu ích, nếu bạn có bất kỳ câu hỏi nào hoặc cần thảo luận thêm, vui lòng hỏi, cảm ơn bạn đã đọc!