The Dog House Dog or Alive,Ví dụ về việc sử dụng lệnh nohup trong Ubuntu
2024-11-04 3:24:30
tin tức
tiyusaishi
I. Giới thiệu
Trên Ubuntu, 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, chúng ta có thể sử dụng lệnh nohup. Bài viết này sẽ giới thiệu chi tiết cách chạy các tác vụ nền trên Ubuntu bằng lệnh nohup.
2. Giới thiệu về lệnh nohup
Nohup là tên viết tắt của "NoHangup", và chức năng chính của nó là chạy các lệnh hoặc tập lệnh trong nền và bỏ qua tất cả các tín hiệu gác máy. Bằng cách này, ngay cả khi chúng ta đóng thiết bị đầu cuối hoặc ngắt kết nối SSH, tác vụ vẫn sẽ chạy trong nền. Tệp đầu ra mặc định cho nohup là nohup.out trừ khi tệp đầu ra khác được chỉ định.
3. Ví dụ sử dụng
1. Chạy một lệnh duy nhất
Giả sử chúng ta cần chạy một lệnh có tên là "mycommand" và chúng ta muốn nó chạy liên tục trong nền, ngay cả khi chúng ta đóng thiết bị đầu cuối. Chúng ta có thể sử dụng lệnh sau:
''Ầm ầm
nohupmycommand>myoutput.log2>&1&
```
Ở đây, ">myoutput.log" là chuyển hướng đầu ra đến một tệp có tên "myoutput.log"; "2>&1" là chuyển hướng lỗi tiêu chuẩn (2) sang đầu ra tiêu chuẩn (1) để tất cả các thông báo đầu ra và lỗi được ghi lại trong cùng một tệp; "&" là đặt lệnh ở chế độ nền để chạy.
2. Chạy tập lệnh
Nếu chúng ta có một tập lệnh được gọi là "myscript.sh" và muốn nó chạy liên tục trong nền, chúng ta có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myscript.sh>myscript.log2>&1&
```
Một lần nữa, chúng tôi chuyển hướng đầu ra đến một tệp có tên "myscript.log" và sử dụng "&" để đặt tập lệnh đang chạy trong nền.
4. Kiểm tra trạng thái nhiệm vụ
Để xem trạng thái của tác vụ nohup đang chạy trong nền, chúng ta có thể sử dụng lệnh sau:
''Ầm ầm
psaux|grepmycommand thay thế mycommand bằng tên lệnh thực tếJUN88
```
Điều này sẽ liệt kê tất cả các tiến trình đang chạy và sử dụng grep để lọc ra các dòng có liên quan đến lệnh của chúng tôiHeo nỗ hũ. Bằng cách này, chúng ta có thể xem ID quy trình (PID), cách sử dụng CPU và các thông tin khác của tác vụ.
5. Kết thúc nhiệm vụ
Nếu chúng ta muốn kết thúc một tác vụ nohup đang chạy trong nền, chúng ta có thể sử dụng lệnh kill cộng với ID tiến trình (PID) của tác vụ. Chẳng hạn:
''Ầm ầm
kill-9PID thay thế PID bằng ID tiến trình thực tế
```
6ĐẶC VỤ 007. Biện pháp phòng ngừa
1. Khi sử dụng nohup, hãy đảm bảo bạn có đủ quyền để thực thi lệnh hoặc tập lệnh. Nếu quyền không đủ, nó có thể khiến tác vụ không thể bắt đầu hoặc chấm dứt đột ngột.
2. Khi sử dụng nohup, hãy đảm bảo rằng các lệnh hoặc tập lệnh không làm quá tải tài nguyên hệ thống. Nếu một tác vụ chiếm quá nhiều tài nguyên, nó có thể khiến hiệu suất hệ thống chậm lại hoặc gặp sự cố. Để tránh điều này, chúng ta nên theo dõi việc sử dụng tài nguyên của nhiệm vụ và điều chỉnh phân bổ tài nguyên nếu cần thiết. Ví dụ: chúng ta có thể sử dụng lệnh ulimit để giới hạn mức sử dụng bộ nhớ của một tiến trình hoặc thời gian sử dụng CPU, v.v. Ví dụ: 'ulimit-m500m' sẽ giới hạn mức sử dụng bộ nhớ của quá trình ở mức 500MB. Xin lưu ý rằng điều này sẽ chỉ có hiệu lực cho phiên hiện tại. Để áp dụng các hạn chế này mỗi khi chúng ta bắt đầu một phiên, chúng ta cần thêm các cài đặt này vào tập lệnh khởi động tương ứng (như bashrc). Trên đây là phần giới thiệu về việc sử dụng lệnh nohup trong Ubuntu và các biện pháp phòng ngừa. Bằng cách sử dụng lệnh nohup, chúng ta có thể dễ dàng chạy các tác vụ dài trong nền và đảm bảo rằng các tác vụ này 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ắt kết nối. Điều này rất hữu ích cho các tác vụ tự động và các tập lệnh chạy dài. Nếu bạn gặp bất kỳ sự cố nào trong quá trình sử dụng, bạn có thể tham khảo tài liệu liên quan hoặc tài nguyên trực tuyến để biết thông tin trợ giúp.