上一篇
Lệnh nohup trong Linux và xử lý đầu ra của nó
I. Giới thiệu
Trong Linux, chúng ta thường cần chạy một số tác vụ dài trong nền, ngay cả sau khi chúng ta thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Để đạt được điều này, Linux cung cấp một số công cụ, bao gồm lệnh nohup. Bài viết này sẽ giới thiệu chi tiết lệnh nohup trong Linux và cách xử lý đầu ra của nó.
2. Giới thiệu về lệnh nohup
Nohup là tên viết tắt của "nohangup", cho phép chúng ta để phiên shell chạy trong nền ngay cả sau khi thoát khỏi phiên shell. Nói cách khác, lệnh nohup cho phép chương trình của chúng ta bỏ qua tín hiệu treo máy và tiếp tục chạy. Điều này đặc biệt hữu ích cho truy cập từ xa hoặc các chương trình cần chạy trong thời gian dài.
3. Cách sử dụng lệnh nohup
Định dạng cơ bản để sử dụng lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
'command' là lệnh hoặc chương trình bạn muốn chạy.
'>/dev/null' chuyển hướng đầu ra tiêu chuẩn đến /dev/null, tức là bỏ qua tất cả thông tin đầu ra.
'2>&1' cũng là chuyển hướng các lỗi tiêu chuẩn sang đầu ra tiêu chuẩn. Điều này có nghĩa là tất cả các đầu ra, bao gồm cả đầu ra lỗi, đều bị bỏ qua. Nếu bạn không cần phải bỏ qua đầu ra, bạn chỉ có thể chạy nohupcommand>. Biểu tượng '&' ở đây cho phép lệnh chạy trong nền.
Ví dụ: nếu bạn muốn chạy một chương trình có tên "myprogram" trong nền, bạn có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myprogram&
```
4. Xử lý đầu ra của lệnh nohup
Một chương trình chạy với lệnh nohup sẽ tạo ra một tệp có tên nohup.out trong thư mục hiện tại, ghi lại đầu ra của chương trình (bao gồm cả lỗi đầu ra). Chúng ta có thể trực tiếp nhìn vào tệp này để có được trạng thái chạy và thông tin lỗi của chương trình. Nếu bạn không muốn xem bất kỳ thông tin đầu ra nào, bạn có thể chuyển hướng đầu ra đến /dev/null như được mô tả ở trên. Nếu bạn chỉ muốn giữ thông báo lỗi và bỏ qua đầu ra bình thường, bạn có thể sử dụng '> / dev / null' để bỏ qua đầu ra bình thường và sau đó sử dụng '2>file.log' để chuyển hướng đầu ra lỗi đến tệp. Chẳng hạn:
''Ầm ầm
nohup./myprogram>/dev/null2>error.log&
```
Bằng cách này, tất cả các lỗi đầu ra được ghi vào tệp error.log. Bạn có thể kiểm tra chương trình để biết các điều kiện lỗi bằng cách xem tệp này. Đồng thời, bạn cũng có thể xem nội dung nhật ký mới trong thời gian thực bằng lệnh 'tail-ffile.log'. Điều này rất hữu ích để theo dõi trạng thái hoạt động của chương trình trong thời gian thực. Ví dụ: bạn có thể đang chạy một tác vụ dài và tự hỏi khi nào nó sẽ kết thúc hoặc nếu có bất kỳ lỗi nào xảy ra. Trong trường hợp này, bạn có thể sử dụng tail-fnohup.out để xem kết quả mới nhất. Khi bạn thấy "Đã hoàn tất" hoặc thông báo khác cho biết tác vụ đã hoàn tất, bạn có thể đóng thiết bị đầu cuối hoặc ngắt kết nối khỏi SSH. Mặc dù nohup.out vẫn ghi chép nhật ký dữ liệu ở chế độ nền, nhưng nó không còn có thể ảnh hưởng đến bạn vì thiết bị đầu cuối hoặc kết nối đã đóng. Tóm lại, biết cách sử dụng và giải thích thông tin đầu ra của nohup là điều cần thiết để chạy các tác vụ trong thời gian dài trong môi trường Linux. Điều này không chỉ giúp bạn quản lý các tác vụ của mình mà còn giúp bạn chẩn đoán sự cố và tối ưu hóa hiệu suất chương trình của bạn.