Lệnh nohup được sử dụng với việc chuyển hướng đầu ra đến một tệp
2024-10-28 12:16:59
tin tức
tiyusaishi
Trong các hệ thống Linux, chúng ta thường cần chạy một số lệnh hoặc chương trình nhất định trong nền cần tiếp tục chạy ngay cả sau khi chúng ta thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Đây là lúc lệnh 'nohup' phát huy tác dụng. 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 của lệnh sang tệp.
1. Hiểu lệnh nohup
'nohup' là chữ viết tắt của 'nohangup' và mục đích chính của lệnh này là làm cho lệnh thực thi hoặc tập lệnh tiếp tục chạy sau khi thiết bị đầu cuối đóng. Nó thường được sử dụng cho các hoạt động đăng nhập từ xa, để người dùng có thể tiếp tục chạy chương trình trong nền sau khi đăng xuất.
2. 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&
```
Dưới đây là giải thích về ý nghĩa của từng phần:
'command': Lệnh bạn muốn chạy trong nền.
'>/dev/null': Chuyển hướng stdout đến '/dev/null', nghĩa là tất cả thông tin đầu ra thông thường đều bị bỏ qua.
'2>&1': Chuyển hướng đầu ra lỗi tiêu chuẩn (bộ mô tả tệp 2) sang đầu ra tiêu chuẩn (bộ mô tả tệp 1), tức là cũng bỏ qua đầu ra lỗi.
'&': Khiến lệnh chạy trong nền.
3. Chuyển hướng đầu ra đến một tệp
Mặc dù phương thức trên có thể bỏ qua đầu ra của lệnh, nhưng có một số trường hợp chúng ta có thể cần xem đầu ra của lệnh. Tại thời điểm này, chúng ta có thể chuyển hướng đầu ra đến một tệp. Ví dụ: nếu chúng ta muốn chạy một lệnh có tên 'mycommand' và lưu tất cả đầu ra (bao gồm cả lỗi) vào một tệp có tên 'output.txt', chúng ta có thể thực hiện như sau:
''Ầm ầm
nohupmycommand>output.txt2>&1&
```
Bằng cách này, tất cả đầu ra của 'mycommand' sẽ được lưu vào tệp 'output.txt'. Ngay cả khi chúng tôi thoát khỏi thiết bị đầu cuối hoặc đóng phiên, lệnh vẫn sẽ chạy trong nền và tất cả đầu ra sẽ được nối vào tệp.
4. Xem và quản lý các tác vụ nền
Một lệnh bắt đầu bằng 'nohup' tạo ra một tệp có tên 'nohup.out' trong thư mục hiện tại chứa tất cả đầu ra của lệnh (trừ khi chúng tôi chuyển hướng nó đến một tệp khác). Chúng ta có thể xem tệp này để theo dõi việc chạy các tác vụ nền. Ngoài ra, chúng ta có thể sử dụng lệnh 'jobs' để xem trạng thái của tất cả các tác vụ nền trong phiên hiện tại. Đối với các tác vụ nền cụ thể, chúng ta có thể sử dụng lệnh 'fg' để tiếp tục chạy ở nền trước hoặc sử dụng lệnh 'bg' để làm cho nó tiếp tục chạy trong nền. Để chấm dứt một tác vụ nền, bạn có thể sử dụng lệnh 'kill'.
5. Biện pháp phòng ngừa
Khi sử dụng 'nohup', bạn cần biết về quyền. Đảm bảo rằng bạn có đủ quyền để thực hiện lệnh và ghi đầu ra vào tệp được chỉ định. Ngoài ra, khi sử dụng chuyển hướng, các tệp mới có thể được tạo nếu đường dẫn tệp không tồn tại; Nếu tệp đã tồn tại, đầu ra được gắn vào tệp thay vì ghi đè lên nội dung gốc.
6. Tóm tắt
'Nohup' là một công cụ mạnh mẽ cho phép chúng tôi chạy các lệnh trong nền và lưu đầu ra vào một tệp. Điều này rất hữu ích cho việc đăng nhập từ xa, các tác vụ đòi hỏi thời gian dài hoặc các chương trình mà chúng tôi muốn chạy mà không can thiệp vào phiên hiện tại. Nắm vững cách sử dụng và biện pháp phòng ngừa của lệnh này có thể cải thiện đáng kể hiệu quả công việc của chúng tôi trong hệ thống Linux.