Nohup so với Setsid
2024-10-24 13:12:12
tin tức
tiyusaishi
Tiêu đề: Nohup và SetsId: Hai thành phần lạ để chạy các chương trình trong nền
I. Giới thiệu
Trong các hệ thống Unix và Linux, chúng ta thường cần chạy các chương trình ở chế độ nền, đặc biệt là khi thực hiện các tác vụ dài trên các máy chủ từ xa. Tại thời điểm này, chúng ta cần đảm bảo rằng chương trình tiếp tục chạy ngay cả khi thiết bị đầu cuối đã đóng. Để đạt được điều này, chúng ta có thể sử dụng hai lệnh, nohup và setsid. Bài viết này sẽ trình bày chi tiết các chức năng và cách sử dụng của hai lệnh này.
2. Nohup: Cho phép quá trình tiếp tục chạy bất kể tín hiệu cúp máy
1. Giới thiệu về lệnh nohup
Nohup là một lệnh được sử dụng để chạy một chương trình trong nền và tác dụng của nó là làm cho chương trình bỏ qua tất cả các tín hiệu gác máy. Điều này có nghĩa là ngay cả khi thiết bị đầu cuối bị đóng, chương trình sẽ tiếp tục chạy trong nền.
2. Cách sử dụng
Cú pháp cơ bản để chạy một chương trình với nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
trong đó lệnh là chương trình chạy trong nền; > / dev / null là chuyển hướng đầu ra tiêu chuẩn đến một thiết bị trống, để tránh thông tin đầu ra được hiển thị trên thiết bị đầu cuối; 2>&1 là chuyển hướng lỗi tiêu chuẩn sang đầu ra tiêu chuẩn; " Cho biết đưa chương trình vào nền để chạy.
3. setsid: tạo một phiên mới và xóa quá trình khỏi thiết bị đầu cuối điều khiển
1. Giới thiệu về lệnh setsid
Lệnh setsid được sử dụng để tạo một phiên mới và chạy một chương trình được chỉ định. Một chương trình được khởi chạy qua setsid không được liên kết với thiết bị đầu cuối đã khởi chạy nó, điều đó có nghĩa là ngay cả khi thiết bị đầu cuối bị đóng, chương trình sẽ tiếp tục chạy trong một phiên mới.
2. Cách sử dụng
Cú pháp cơ bản để chạy một chương trình với setsid như sau:
''Ầm ầm
setsidlệnh
```
Không giống như Nohup, setsid không cần chuyển hướng đầu ra đến một tệp hoặc một thiết bị trống. Khi một chương trình được khởi động với setsid, đầu vào tiêu chuẩn, đầu ra tiêu chuẩn và lỗi tiêu chuẩn của chương trình đều trỏ đến bộ mô tả tệp tương ứng cho phiên mới theo mặc định.
4. So sánh và lựa chọn
1. Mẫu số chung: Cả nohup và setsid đều cho phép chương trình chạy trong nền và không bị ảnh hưởng bởi thiết bị đầu cuối bị đóng.
2. Sự khác biệt: nohup chủ yếu bỏ qua tín hiệu treo máy và chạy chương trình ở chế độ nền bằng cách chuyển hướng đầu ra đến một tệp hoặc thiết bị trống; Setsid là tạo một phiên mới và để chương trình chạy trong phiên mới, do đó rời khỏi thiết bị đầu cuối điều khiển.
3. Lựa chọn: Đối với các tác vụ nền đơn giản, bạn có thể sử dụng nohup; Đối với các chương trình cần chạy độc lập và không bị ảnh hưởng bởi thiết bị đầu cuối điều khiển, nên sử dụng setsid. Ngoài ra, các công cụ khác như màn hình, tmux, v.v., có thể được sử dụng để đạt được các chức năng chạy nền mạnh mẽ hơn.
5. Tóm tắt
nohup và setsid là hai lệnh phổ biến được sử dụng trong các hệ thống Unix và Linux để chạy các chương trình trong nền. Mỗi người trong số họ có những ưu điểm riêng và việc chọn lệnh phù hợp với nhu cầu thực tế có thể cho phép chúng tôi quản lý các tác vụ nền hiệu quả hơn. Bằng cách sử dụng thành thạo hai lệnh này, chúng ta có thể sử dụng tốt hơn các chức năng mạnh mẽ của hệ thống Unix và Linux, đồng thời cải thiện việc sử dụng tài nguyên hệ thống và hiệu quả công việc.