Làm thế nào để thoát khỏi lệnh Nohup trong Shell Script
2024-10-24 10:54:53
tin tức
tiyusaishi
Cách thoát lệnh nohup trong tập lệnh shell
Khi chúng ta sử dụng hệ thống Linux hoặc Unix, thường cần phải chạy một số lệnh hoặc tập lệnh trong nền không ngăn chúng ngay cả khi chúng ta đóng thiết bị đầu cuối. Đó là nơi lệnh nohup có ích. Nhưng đôi khi chúng ta cũng gặp phải tình huống cần thoát khỏi các lệnh hoặc tập lệnh đang chạy trong nền. Vậy làm thế nào để bạn thoát khỏi lệnh nohup trong một tập lệnh shell? Bài viết này sẽ giải thích chi tiết điều này.
1. Hiểu lệnh nohup
Trước hết, chúng ta cần hiểu chức năng cơ bản của lệnh nohup. Nohup là chữ viết tắt của "nohangup", cho phép bạn giữ lệnh chạy sau khi thoát khỏi shell. Nói một cách đơn giản, nohup được sử dụng để chạy một lệnh hoặc tập lệnh trong nền sẽ tiếp tục chạy ngay cả khi bạn đóng cửa sổ đầu cuối. Nó thường được sử dụng để chạy các tác vụ có độ dài dài.
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&
```
Trong đó "lệnh" là lệnh hoặc tập lệnh bạn muốn chạy, ">/dev/null2>&1" là chuyển hướng đầu ra đến một thiết bị trống để tránh mọi nhiễu đầu ra và "&" có nghĩa là đặt lệnh vào nền để chạy.
3. Cách thoát lệnh nohup
Nếu bạn muốn thoát khỏi một lệnh hoặc tập lệnh nohup đang chạy, điều đầu tiên bạn cần phải rõ ràng là nohup chỉ giữ cho lệnh chạy trong nền, không khóa bạn trong. Do đó, một lệnh hoặc tập lệnh thoát khỏi một lần chạy nohup không được thực hiện trực tiếp thông qua lệnh nohup. Thông thường, bạn sẽ quyết định cách thoát dựa trên loại tác vụ cụ thể và cách bạn bắt đầu nó. Dưới đây là một số phương pháp phổ biến:
1. Nếu bạn đang chạy một tác vụ dài hạn trong nền, chẳng hạn như tập lệnh vòng lặp vô hạn, thì bạn cần tìm PID (ID quy trình) của tập lệnh này và sau đó sử dụng lệnh kill để kết thúc nó. Bạn có thể sử dụng 'psaux|grep[keyword]' để tìm PID của tiến trình, và sau đó sử dụng 'killPID' để kết thúc quá trình. Hãy cẩn thận thay thế từ khóa bằng tên nhiệm vụ của bạn hoặc thông tin khác có thể giúp bạn xác định quy trình.
2. Nếu bạn đang chạy một tác vụ có điều kiện kết thúc rõ ràng, chẳng hạn như tác vụ hoặc tập lệnh đã lên lịch, tác vụ hoặc tập lệnh đó sẽ tự động kết thúc khi hoàn thành tác vụ đã lên lịch. Trong trường hợp này, bạn không cần phải chọn không tham gia theo cách thủ công.
3. Nếu bạn đang chạy một chương trình hoặc tập lệnh với nohup trong thiết bị đầu cuối, bạn chỉ cần đóng cửa sổ đầu cuối. Vì nohup được thiết kế để giữ cho các chương trình hoặc tập lệnh chạy sau khi bạn thoát, việc đóng thiết bị đầu cuối sẽ không ảnh hưởng đến chúng. Tuy nhiên, lưu ý rằng điều này sẽ không kết thúc các chương trình hoặc tập lệnh do Nohup khởi chạy, nó sẽ chỉ đóng cửa sổ đầu cuối khởi chạy chúng.
Nói chung, lệnh hoặc tập lệnh thoát khỏi nohup phụ thuộc chủ yếu vào loại tác vụ bạn có và cách bạn bắt đầu nó. Trong hầu hết các trường hợp, bạn không cần phải thoát khỏi một chương trình hoặc tập lệnh đang chạy trực tiếp bằng lệnh nohup. Chỉ cần tìm quá trình tương ứng và sử dụng lệnh kill để kết thúc nó. Khi sử dụng Nohup, điều quan trọng là đảm bảo bạn hiểu loại tác vụ và tiêu chí kết thúc của mình để bạn có thể thoát tác vụ một cách chính xác nếu cần.