Làm thế nào để chạy một chương trình và biết PID của nó trong Linux?Làm thế nào để chạy một chương trình và biết PID của nó trong Linux?
Nếu tôi có nhiều hệ vỏ chạy với nhau, tất cả chúng sẽ có các PID riêng biệt không?
Làm thế nào để chạy một chương trình và biết PID của nó trong Linux?Làm thế nào để chạy một chương trình và biết PID của nó trong Linux?
Nếu tôi có nhiều hệ vỏ chạy với nhau, tất cả chúng sẽ có các PID riêng biệt không?
Greg's wiki để giải cứu:
$!
là PID của tiến trình backgrounded ngoái.kill -0 $PID
kiểm tra xem $PID
vẫn đang chạy. Chỉ sử dụng điều này cho các quá trình được bắt đầu bởi quá trình hiện tại hoặc con cháu của nó, nếu không thì PID có thể đã được tái chế.wait
đợi tất cả trẻ em thoát ra trước khi tiếp tục.Thực ra, chỉ cần đọc liên kết - Tất cả đều có (và nhiều hơn nữa).
$$
is the PID of the current shell.
Và có, mỗi trình bao sẽ có PID riêng của nó (trừ khi đó là một số vỏ homebrewed mà không fork
để tạo một vỏ "mới").
1) Có một biến cho rằng, thường $$
:
[email protected]:~$ echo $$ # shell itself
20559
[email protected]:~$ bash -c 'echo $$' # new shell with different PID
19284
[email protected]:~$ bash -c 'echo $$' # dito
19382
[email protected]:~$
2) Có họ làm, OS/kernel nào đó cho bạn.
lệnh trên cùng trong linux (Ubuntu) hiển thị mức sử dụng bộ nhớ của tất cả các chương trình đang chạy trong linux với pid của chúng. Giết pid có thể giết chết quá trình.
Cách sử dụng biến '$$'? Nó có chứa PID của chương trình được chạy cuối cùng hay không? –
Nhìn vào ví dụ tôi đã đưa ra. Đối với shell, nó là PID riêng của nó. –
trong 'bash'' $! 'Là PID của quá trình nền cuối cùng. – dldnh