Trên các hệ thống Unix và Linux, lệnh nohup cho phép chúng ta chạy một chương trình nền hoặc tập lệnh và tiếp tục chạy nó sau khi đóng thiết bị đầu cuối. Đôi khi chúng ta cần biết ID quy trình (PID) của các quy trình nền này để theo dõi, quản lý hoặc chuyển hướng đầu ra. Chủ đề này mô tả cách lấy ID quy trình của một tiến trình được bắt đầu bởi nohup. 1. Sử dụng lệnh nohup để chạy chương trình hoặc tập lệnh Đầu tiên, chúng ta cần sử dụng lệnh nohup để chạy chương trình hoặc tập lệnh. Ví dụ: chúng ta có thể chạy một tập lệnh có tên myscript.sh như thế này: ''Ầm ầm nohup./myscript.sh& ``` Trong ví dụ này, biểu tượng "&" đặt tập lệnh đang chạy trong nền. Lệnh nohup làm cho tập lệnh tiếp tục chạy sau khi đóng thiết bị đầu cuối. Tại thời điểm này, tập lệnh đã chạy, nhưng chúng tôi chưa biết ID quy trình của nó. 2. Kiểm tra ID tiến trình của quá trình chạy nohup Chúng ta có thể lấy PID của quá trình bằng cách nhìn vào đầu ra của lệnh nohup. Khi bạn chạy chương trình bằng lệnh nohup, nó sẽ tạo ra một tệp có tên nohup.out trong thư mục hiện tại, chứa thông tin đầu ra của chương trình. Chúng ta có thể nhìn vào tập tin này để có được PID. Tuy nhiên, nhìn trực tiếp vào tập tin này có thể không tìm thấy thông tin PID. Do đó, chúng ta có thể chuyển hướng đầu ra đến một tệp tạm thời bằng lệnh sau: ''Ầm ầm nohup./myscript.sh>myscript.out2>&1&echo$!>pid.txt ``` Trong ví dụ này, "$!" Đại diện cho PID của lệnh nền cuối cùng. Chúng ta xuất PID này ra một file gọi là pid.txt. Bằng cách này, chúng ta có thể lấy PID của quá trình bằng cách xem tệp pid.txt. Ngoài ra, chúng ta có thể sử dụng lệnh ps kết hợp với lệnh grep để tìm PID: ''Ầm ầm psaux|grepmyscript.sh ``` Lệnh này liệt kê tất cả các tiến trình đang chạy và lọc ra thông tin quy trình liên quan đến myscript.sh thông qua grep. Trong thông tin đầu ra, chúng ta có thể thấy PID của quá trình. Cách tiếp cận này rất hữu ích cho các tình huống mà bạn biết tên của một chương trình nhưng không chắc chắn về đường dẫn đầy đủ của nó. Đối với các chương trình đã được khởi động nhưng không tìm thấy PID, phương pháp tương tự có thể được sử dụng để tìm chúng. Chúng ta có thể tìm thấy thông tin PID liên quan trong nội dung đầu ra, trong đó cột thứ hai là thông tin PID. Nếu đầu ra quá nhiều để xem, bạn có thể sử dụng ký tự pipe "| Chuyển kết quả đến lệnh ít hơn để xem phân trang: ''Ầm ầm psaux|grepmyscript.sh|ít hơn 3. Sử dụng các công cụ khác để theo dõi trạng thái của quy trình Ngoài việc lấy PID trực tiếp từ dòng lệnh, có những công cụ chúng ta có thể sử dụng để theo dõi và quản lý trạng thái của các quy trình nền. Ví dụ: bạn có thể sử dụng lệnh trên cùng để xem danh sách các quy trình hiện đang chạy và trạng thái của chúng. Sử dụng lệnh htop để xem và quản lý quy trình một cách tương tác; Sử dụng lệnh pgrep để tìm các quy trình, v.v. dựa trên tên. Những công cụ này có thể giúp chúng tôi quản lý các quy trình nền và nhận thông tin liên quan dễ dàng hơn. 4. Tóm tắtBài viết này mô tả cách sử dụng lệnh nohup để chạy một chương trình hoặc tập lệnh trong nền và lấy ID tiến trình của nó. Đầu tiên, chạy chương trình hoặc tập lệnh bằng lệnh nohup; Sau đó tìm PID bằng cách xem tệp đầu ra nohup hoặc sử dụng lệnh ps kết hợp với lệnh grep; Cuối cùng, các phương pháp được sử dụng bởi các công cụ khác để theo dõi và quản lý trạng thái của các quy trình được mô tả. Nắm vững các phương pháp này có thể giúp chúng tôi quản lý tốt hơn các quy trình nền tảng và nhận thông tin liên quan để đáp ứng nhu cầu thực tế. Trong thực tế sử dụng, vui lòng lựa chọn phương pháp phù hợp theo tình huống cụ thể. Nếu nghi ngờ, vui lòng tham khảo tài liệu liên quan hoặc tìm kiếm sự trợ giúp chuyên nghiệp để giải quyết vấn đề.