Nohup và quá trình nền trong Linux
2024-10-28 16:15:21
tin tức
tiyusaishi
Tiêu đề: nohup và các quy trình nền trong Linux
Trong hệ điều hành Linux, chúng ta thường cần chạy một số quy trình chạy dài trong nền, chẳng hạn như tác vụ xử lý hàng loạt, dịch vụ nền, v.v. Để đảm bảo rằng các tiến trình này tiếp tục chạy ngay cả sau khi hệ thống thoát hoặc phiên đầu cuối kết thúc, chúng ta có thể sử dụng lệnh nohup và công nghệ xử lý nền để làm như vậy. Bài viết này sẽ xem xét kỹ hơn về ứng dụng của hai công nghệ này trong Linux.
1. Quá trình nền tảng
Trong Linux, chúng ta có thể đặt một tiến trình đang chạy trong nền bằng cách thêm biểu tượng "&" ở cuối lệnh. Ví dụ: chúng ta có thể chạy một ứng dụng chạy dài có tên "myapp" bằng lệnh sau:
''Ầm ầm
./myapp&
```
Bằng cách này, ứng dụng sẽ được thiết lập và chạy trong nền, ngay cả khi phiên đầu cuối bị đóng, nó sẽ không ảnh hưởng đến hoạt động của chương trình. Tuy nhiên, khi phiên đầu cuối kết thúc hoặc người dùng đăng xuất, các quy trình nền có thể bị ảnh hưởng bởi các yếu tố khác. Để giải quyết vấn đề này, chúng ta có thể sử dụng lệnh nohup.
2. Lệnh Nohup
Lệnh nohup được sử dụng để chạy lệnh hoặc tập lệnh trong nền và bỏ qua tín hiệu gác máy. Điều này có nghĩa là ngay cả khi phiên đầu cuối kết thúc hoặc người dùng đăng xuất, quá trình bắt đầu bởi Nohup sẽ tiếp tục chạy. Cú pháp cơ bản để sử dụng lệnh nohup như sau:
''Ầm ầm
nohupcommand&
```
trong đó "lệnh" là một lệnh hoặc tập lệnh để chạy trong nền. Khi bạn chạy một quá trình với lệnh nohup, hệ thống sẽ chuyển hướng đầu ra của quá trình đến một tệp có tên nohup.out, trừ khi một tệp đầu ra khác được chỉ định. Để chuyển hướng đầu ra sang một tệp khác, có thể sử dụng cú pháp sau:
''Ầm ầm
nohupcommand>/path/to/output.log2>&1&
```
Biểu tượng ">" ở đây được sử dụng để chuyển hướng đầu ra tiêu chuẩn đến tệp được chỉ định và "2>&1" có nghĩa là chuyển hướng đầu ra lỗi tiêu chuẩn đến luồng đầu ra tiêu chuẩn (tức là tệp được chỉ định ở trên). Bằng cách này, cả đầu ra tiêu chuẩn và lỗi đều được đăng nhập vào cùng một tệp.
Ngoài cách sử dụng trên, lệnh nohup còn hỗ trợ một số tùy chọn và tham số khác, chẳng hạn như thiết lập các biến môi trường, sử dụng trình thông dịch shell khác, v.v. Nó có thể được cấu hình và sử dụng theo nhu cầu thực tế.
3. Ứng dụng ví dụ
Giả sử chúng ta có một tập lệnh gọi là "myscript.sh" cần chạy trong nền trong một thời gian dài và bỏ qua tín hiệu treo máy của phiên đầu cuối. Chúng ta có thể chạy tập lệnh bằng lệnh sau:
''Ầm ầm
nohup./myscript.sh&
Bằng cách này, ngay cả khi phiên đầu cuối bị đóng hoặc người dùng đăng xuất, tập lệnh myscript.sh vẫn tiếp tục chạy trong nền và lưu đầu ra vào tệp nohup.out (trừ khi tệp đầu ra khác được chỉ định).
Tóm tắt: Các công nghệ quy trình nền và nohup trong Linux cung cấp một cách thuận tiện để chúng tôi chạy các tác vụ dài trong nền và bỏ qua các tín hiệu treo phiên đầu cuối. Bằng cách sử dụng hai công nghệ này một cách khôn ngoan, chúng ta có thể dễ dàng quản lý các quy trình nền và đảm bảo rằng chúng hoạt động như dự định. Điều này rất hữu ích cho các tác vụ hàng loạt, dịch vụ nền và các quy trình dài hạn khác.