Cách sử dụng lệnh nohup trong Linux và lấy ID tiến trình
2024-10-23 16:20:49
tin tức
tiyusaishi
I. Giới thiệu
Trong Linux, chúng ta thường cần chạy một số tác vụ dài trong nền, tác vụ này vẫ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. Để đạt được điều này, chúng ta có thể sử dụng lệnh nohup trong Linux. Đồng thời, để quản lý và giám sát tốt hơn các tác vụ nền này, chúng ta cần lấy ID quy trình (PID) của chúng. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh nohup trong Linux và lấy ID tiến trình một cách chi tiết.
2. Giới thiệu về lệnh nohup
Nohup là chữ viết tắt của "nohangup", một lệnh cho phép chúng tôi chạy lệnh hoặc tập lệnh trong nền và lệnh đó vẫn sẽ tiếp tục chạy sau khi chúng tôi thoát khỏi thiết bị đầu cuối. Điều này rất hữu ích để chạy các tác vụ dài hạn.
3. Cách sử dụng lệnh nohup
Trong Linux, cú pháp cơ bản để sử dụng lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
'command' là lệnh hoặc tập lệnh bạn muốn chạy trong nền.
'>/dev/null2>&1' là chuyển hướng đầu ra tiêu chuẩn và lỗi đến /dev/null để bạn không bị phân tâm bởi bất kỳ thông tin đầu ra nào.
'&' là đặt lệnh ở chế độ nền để chạy.
Ví dụ: nếu bạn muốn chạy tập lệnh có tên "myscript.sh" trong nền, bạn có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myscript.sh>/dev/null2>&1&
```
4. Lấy ID quy trình (PID)
Sau khi đặt một lệnh hoặc tập lệnh chạy trong nền, chúng ta cần lấy ID tiến trình của nó để theo dõi và quản lý. Trong Linux, chúng ta có thể sử dụng lệnh 'jobs' hoặc lệnh 'pgrep' để lấy ID tiến trình. Nếu bạn đang bắt đầu một tác vụ nền trong bashshell, bạn có thể sử dụng lệnh 'jobs' để xem ID quy trình của tất cả các tác vụ nền. Đối với một quá trình cụ thể, bạn có thể sử dụng lệnh 'pgrep' với tên tiến trình hoặc từ khóa để tìm PID của nó. Chẳng hạn:
''Ầm ầm
pgrepmyscript sử dụng tên script để tìm PID
```
5. Tóm tắt
Lệnh nohup là một công cụ rất hữu ích trong Linux cho phép chúng tôi chạy các tác vụ dài trong nền và tiếp tục chạy chúng sau khi chúng tôi thoát khỏi thiết bị đầu cuối. Đồng thời, bằng cách lấy ID quy trình, chúng tôi có thể quản lý và giám sát tốt hơn các tác vụ nền này. Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn và sử dụng lệnh nohup và cách lấy process ID.
6. Thông tin bổ sung
Lưu ý rằng khi bạn sử dụng lệnh nohup, hệ thống sẽ tạo ra một tệp có tên là "nohup.out" trong thư mục hiện tại, đây là tệp đầu ra mặc định của lệnh nohup. Tệp này sẽ lưu đầu ra của các tác vụ nền của bạn. Nếu bạn không muốn tệp này được tạo, bạn có thể sử dụng tùy chọn '-o' để chỉ định một tệp trống làm tệp đầu ra, ví dụ: 'nohup./myscript.sh>/dev/null'. Ngoài ra, bạn có thể sử dụng tùy chọn '-p' để lấy PID của quy trình trực tiếp mà không cần lưu tệp đầu ra. Ví dụ: 'nohup./myscript.sh&echo$!', trong đó '$!' là PID của quy trình nền hiện tại.