上一篇
Tiêu đề: lệnh nohup trong Ubuntu: Bỏ qua đầu vào và nối đầu ra vào tệp nohup.out
Trong Ubuntu và các hệ thống Linux khác, chúng ta thường sử dụng dòng lệnh cho nhiều tác vụ khác nhau, bao gồm chạy các tập lệnh hoặc chương trình chạy dài. Trong những trường hợp này, chúng tôi có thể gặp sự cố: nếu chúng tôi đóng thiết bị đầu cuối hoặc phiên đầu cuối kết thúc, các lệnh hoặc tập lệnh đang chạy cũng dừng lại. Để tránh điều này, chúng ta có thể sử dụng lệnh nohup. Bài viết này sẽ giải thích cách sử dụng lệnh nohup trong Ubuntu và cách giải quyết các vấn đề phổ biến như "nohup bỏ qua đầu vào và nối đầu ra vào tệp nohup.out".
1. Hiểu lệnh nohup
Lệnh nohup là chữ viết tắt của "nohangup" và được sử dụng để chạy lệnh hoặc tập lệnh trong nền và không chấm dứt ngay cả khi phiên đầu cuối bị đóng. Điều này rất hữu ích cho các tập lệnh hoặc chương trình chạy dài cần được tiếp tục chạy. Khi bạn sử dụng lệnh nohup, nó sẽ tạo một tệp có tên nohup.out để lưu trữ thông tin đầu ra.
2. Cách sử dụng lệnh nohup
Sử dụng lệnh nohup rất đơn giản. Chỉ cần nhập lệnh theo định dạng sau vào thiết bị đầu cuối:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
"Lệnh" ở đây là lệnh hoặc tập lệnh bạn muốn chạy. ">/dev/null2>&1" chuyển hướng cả đầu ra tiêu chuẩn và lỗi đến một thiết bị trống (tức là bỏ qua đầu ra) và dấu "&" cuối cùng đặt lệnh đang chạy trong nền. Nếu bạn muốn giữ thông tin đầu ra, bạn có thể chuyển hướng đầu ra đến một tệp, ví dụ: nohupcommand>output.log&. Nhưng nếu bạn không muốn xem bất kỳ thông tin đầu ra nào, bạn có thể bỏ qua tất cả các đầu ra bằng định dạng trên.
3. Xử lý thông báo đầu ra của nohup: "Bỏ qua đầu vào và nối vào nohup.out"
Khi bạn gõ lệnh nohup vào thiết bị đầu cuối, bạn có thể thấy một thông báo: "nohupignoringinputandappendingoutputtonohup.out". Đây là hành vi bình thường. Điều này có nghĩa là lệnh nohup đang bỏ qua tất cả thông tin đầu vào (ví dụ: đầu vào bàn phím) và nối tất cả thông tin đầu ra vào một tệp có tên nohup.out. Nếu đã có một tệp có tên nohup.out trong thư mục hiện tại, thông tin đầu ra sẽ được gắn vào tệp. Nếu bạn không có tập tin này, lệnh nohup sẽ tạo ra nó. Bạn có thể mở tệp này sau để xem đầu ra của lệnh hoặc tập lệnh đang chạy.
4. Các biện pháp phòng ngừa và giải pháp cho các vấn đề thường gặp
1. Đảm bảo rằng bạn có đủ quyền để chạy lệnh hoặc tập lệnh. Một số lệnh có thể yêu cầu đặc quyền quản trị viên để chạy. Bạn có thể sử dụng sudo để chạy các lệnh yêu cầu đặc quyền quản trị viên. Ví dụ: sudonohupcommand&.
2. Đảm bảo có đủ dung lượng đĩa. Nếu các lệnh hoặc tập lệnh của bạn tạo ra nhiều đầu ra hoặc chạy trong một thời gian dài và tạo ra đầu ra liên tục, bạn có thể lấp đầy dung lượng ổ cứng của mình. Trong trường hợp này, bạn có thể xem lại và quản lý tệp nohup.out một cách thường xuyên hoặc sử dụng công cụ xoay vòng nhật ký để làm việc với tệp nhật ký.
3. Nếu bạn không thể tìm thấy tệp nohup.out, bạn có thể tìm kiếm nó bằng lệnh find: find / -namenohup.out2>/dev/null. Thao tác này sẽ tìm kiếm toàn bộ hệ thống tệp và tìm tệp có tên nohup.out. Xin lưu ý rằng quá trình này có thể mất một chút thời gian để hoàn tất tìm kiếm. Bạn có thể cần sử dụng các quyền thích hợp để truy cập các thư mục và tệp nhất định. Bạn có thể sử dụng sudo để có được các quyền cần thiết. Nếu bạn tìm thấy một tệp trong thư mục chính của mình (ví dụ: /home/username/nohup.out), bạn có thể sử dụng lệnh cat để xem nội dung tệp: cat~/nohup.out. Điều này sẽ hiển thị thông tin đầu ra của lệnh hoặc tập lệnh của bạn. Nếu không muốn xem thông tin này, bạn có thể chuyển hướng thông tin đó đến một tệp mới và xem lại sau. Nói tóm lại, bằng cách sử dụng lệnh nohup và các chính sách quản lý quyền và quản lý tệp phù hợp, bạn có thể dễ dàng chạy các lệnh và tập lệnh trong nền và quản lý thông tin đầu ra của chúng trong Ubuntu.