请联系Telegram电报飞机号:@hg4123

Tiêu đề: nohup and disown commands: daemon background processes to keep commands running from terminal shutdown

2024-10-28 16:14:53 tin tức tiyusaishi
Trong các hệ điều hành Unix và Linux, khi người dùng chạy lệnh trong thiết bị đầu cuối, nếu thiết bị đầu cuối bị tắt hoặc khởi động lại, trong hầu hết các trường hợp, lệnh đang chạy cũng sẽ bị chấm dứt. Nhưng để đáp ứng nhu cầu của các chương trình hoặc tác vụ chạy dài không bị gián đoạn bởi các lối ra đầu cuối, chúng tôi có hai công cụ lệnh mạnh mẽ, nohup và disown. Chủ đề này mô tả cách sử dụng hai lệnh này để giúp bạn trình nền daemon và đảm bảo rằng lệnh chạy mà không bị ảnh hưởng bởi việc tắt thiết bị đầu cuối. 1. Lệnh Nohup: để quá trình bỏ qua tín hiệu cúp máy Nohup là chữ viết tắt của "nohangup", có nghĩa là không treo. Lệnh này được sử dụng để chạy các lệnh trong nền và 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 phiên đầu cuối kết thúc hoặc bị tắt, các quy trình bắt đầu với nohup vẫn tiếp tục chạy trong nền. Điều này rất hữu ích cho các tác vụ dài trên các máy chủ từ xa. Cú pháp cơ bản để sử dụng lệnh nohup như sau: ''Ầm ầm nohupcommand>/dev/null2>&1& ``` Trong đó: - 'lệnh' là lệnh bạn muốn chạy. - '>/dev/null2>&1' chuyển hướng đầu ra tiêu chuẩn và đầu ra lỗi sang tệp thiết bị trống để tránh thông tin đầu ra can thiệp vào giao diện đầu cuối. -'&' chỉ ra rằng lệnh được đưa vào nền để thực thi. Ví dụ: nếu bạn muốn chạy tập lệnh điện toán chuyên sâu trong nền mà không bị ảnh hưởng bởi việc tắt thiết bị đầu cuối, bạn có thể thực hiện việc này: ''Ầm ầm nohupyour_script.sh>script_output.log2>&1& ``` Bằng cách này, tập lệnh của bạn sẽ tiếp tục chạy trong nền ngay cả sau khi thiết bị đầu cuối bị ngắt kết nối và ghi đầu ra vào tệp nhật ký được chỉ định. Cần lưu ý rằng nohup chỉ bỏ qua tác động của thiết bị đầu cuối treo tín hiệu và không làm cho thiết bị đầu cuối không bị gián đoạn như các hoạt động nền; Nếu bạn muốn thực hiện nhiều thao tác quản lý tác vụ nền hơn, bạn có thể cần sử dụng các công cụ khác như màn hình hoặc tmux. Ngoài ra, sử dụng nohup thường tạo ra một đầu ra trình tiết kiệm tệp có tên là nohup.out, hãy nhớ xử lý tệp như hiện tại hoặc chuyển hướng nó đến một vị trí khác. Đừng quên kiểm tra điều này trước khi đóng thiết bị đầu cuối. 2. từ chối lệnh: Loại bỏ liên kết giữa một công việc và một thiết bị đầu cuối và lệnh "từ chối" có thể rất hữu ích khi bạn đã bắt đầu một hoặc nhiều quy trình trong nền và muốn chúng tiếp tục chạy, ngay cả khi bạn thoát khỏi phiên đầu cuối. Lệnh này loại bỏ quá trình khỏi danh sách các quy trình trong trình bao hiện tại. Bằng cách sử dụng lệnh này, công việc không biến mất khi thiết bị đầu cuối đóng. "từ chối" thường được sử dụng kết hợp với các tính năng khác của kiểu POSIX để đảm bảo rằng nó không bị "bỏ rơi", đây là một trong những chi tiết quan trọng nhất trong hoạt động của hệ thống. Lệnh "disown-h%hostname" có thể được sử dụng để ngắt liên kết một tiến trình được bắt đầu bởi một máy chủ từ xa. Cú pháp cơ bản để sử dụng lệnh disown như sau: trước tiên bạn cần tìm ID tiến trình (PID) của tiến trình nền bạn muốn quản lý, sau đó sử dụng lệnh sau: bashdisown-h%jobnumber trong đó tùy chọn -h có nghĩa là xóa quy trình khỏi thiết bị đầu cuối mà không tạm dừng hoạt động của nó, +Tùy chọn thường ngược lại, nhấn mạnh ý nghĩa của việc tiếp tục chạy bình thường: nếu bạn muốn biết tác vụ và tiến độ hiện tại, bạn thường cần sử dụng đầu ra nhật ký thay vì tiến trình thực thi thực tế trực tiếp trong bảng điều khiển và nếu bạn cần tính đến, bạn có thể đặt tham số của cả hai theo cách sau: bashdisown-h%jobnumber>/dev/null2>&1''' Tóm lại, nohup và disown là hai công cụ quan trọng có thể giúp người dùng thực hiện các tác vụ nền dài hạn trong môi trường Linux và đảm bảo rằng họ sẽ không bị ảnh hưởng bởi việc tắt thiết bị đầu cuối, đồng thời hiểu và làm quen với hai công cụ này để nâng cao hiệu quả hoạt động của hệ thống và đảm bảo tính liên tục của các tác vụ, đặc biệt là khi thực hiện các tác vụ phức tạp hoặc bảo trì máy chủ, việc sử dụng hợp lý các công cụ này có thể cải thiện đáng kể năng suất, trên đây là giới thiệu và sử dụng nohup và từ chối các lệnh, tôi hy vọng nó sẽ giúp ích cho bạn, nếu bạn cũngNếu bạn có thêm câu hỏi hoặc cần giải thích thêm, xin vui lòng hỏi, cảm ơn bạn đã đọc bài viết này!