Lệnh nohup trong shell và đầu ra của nó chuyển hướng đến một tệp

2024-10-25 11:40:30 tin tức tiyusaishi
Giới thiệu: Trong quá trình sử dụng thiết bị đầu cuối máy tính, đôi khi chúng ta cần chạy một số tác vụ dài hạn ở chế độ nền và các tác vụ này vẫn cần tiếp tục chạy ngay cả sau khi đóng cửa sổ terminal. Tại thời điểm này, chúng ta có thể sử dụng lệnh nohup trong shell để đạt được điều này. Bài viết này sẽ trình bày chi tiết cách sử dụng lệnh nohup và cách chuyển hướng đầu ra đến tệp. Phần 1: Lệnh nohup là gì? nohup là tên viết tắt của "nohangup", là một lệnh shell chạy trên các hệ thống Unix và Linux. Sử dụng lệnh này để chạy các chương trình trong nền và không bị ảnh hưởng bởi việc gác máy (tức là đóng cửa sổ đầu cuối). Điều này có nghĩa là ngay cả khi chúng tôi đóng cửa sổ thiết bị đầu cuối, các chương trình do Nohup khởi chạy vẫn sẽ tiếp tục chạy. Phần 2: Làm thế nào để sử dụng lệnh nohup? Cú pháp cơ bản là: nohupcommand>/dev/null2>&1& Trong đó: Lệnh là một chương trình hoặc lệnh mà chúng ta muố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ỏ đầu ra. 2>&1 có nghĩa là lỗi tiêu chuẩn (bộ mô tả tệp 2) được chuyển hướng đến đầu ra tiêu chuẩn (bộ mô tả tệp 1). &Cho biết rằng lệnh được chạy trong nền. Ví dụ: nếu chúng ta muốn chạy một chương trình có tên là "myprogram" trong nền và chuyển hướng tất cả đầu ra thành một tệp có tên là "output.log", chúng ta có thể thực hiện việc này: nohupmyprogram>output.log2>&1& Thứ ba, đầu ra được chuyển hướng đến một tệp Để lưu đầu ra của lệnh nohup vào một tệp, chúng ta cần chuyển hướng đầu ra đến tệp đó. Sử dụng biểu tượng ">" chuyển hướng đầu ra tiêu chuẩn đến một tệp, trong khi "2>&1" chuyển hướng lỗi tiêu chuẩn sang đầu ra tiêu chuẩn, để chúng ta có thể lưu cả hai đầu ra vào cùng một tệp. Ví dụ: lệnh sau lưu đầu ra của nohup vào tệp có tên "nohup.out": nohupcommand>nohup.out2>&1& Nếu chúng ta muốn nối đầu ra vào một tệp hiện có, thay vì ghi đè lên nội dung gốc, chúng ta có thể sử dụng biểu tượng ">>". Chẳng hạn: nohupcommand>>existingfile.log2>&1& 4. Xem và quản lý các tác vụ nền Để xem các tác vụ hiện đang chạy trong nền, bạn có thể sử dụng lệnh "jobs" (trong bashshell). Ngoài ra, chúng ta có thể sử dụng lệnh "ps" để xem tất cả các tiến trình đang chạy. Nếu bạn muốn kết thúc một tác vụ nền, bạn có thể sử dụng lệnh "giết". 5. Biện pháp phòng ngừa 1. Khi sử dụng lệnh nohup, bạn cần chú ý đến tính mạnh mẽ của chương trình. Mặc dù NoHup có thể giữ cho chương trình chạy trong nền mà không bị ảnh hưởng bởi việc treo máy, nhưng nếu có lỗi hoặc sự cố với chính chương trình, nó có thể khiến chương trình không hoạt động đúng. 2. Điều quan trọng là phải thường xuyên xem xét và kiểm tra đầu ra của các tác vụ nền để đảm bảo chương trình hoạt động bình thường và phát hiện bất kỳ vấn đề tiềm ẩn nào. 3. Để tránh không gian đĩa bị chiếm bởi quá nhiều tệp đầu ra, hãy dọn dẹp và lưu trữ các tệp này thường xuyên. Kết luận: Thông qua phần giới thiệu của bài viết này, chúng ta đã học được cách sử dụng lệnh nohup trong shell để chạy chương trình ở chế độ nền và chuyển hướng đầu ra đến một tệp. Điều này rất hữu ích cho các tác vụ cần chạy trong một thời gian dài hoặc cho các tình huống yêu cầu bạn rời khỏi cửa sổ terminal. Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn và sử dụng lệnh nohup và các tính năng liên quan của nó.