如何在Linux中运行程序并知道它的PID?
如果我有几个shell相互运行,它们都会有单独的PID吗?
答案 0 :(得分:17)
Greg's wiki救援:
$!
是最后一个后台进程的PID。kill -0 $PID
检查$PID
是否仍在运行。仅将此用于当前进程或其后代启动的进程,否则PID可能已被回收。wait
在继续之前等待所有孩子退出。实际上,只需阅读链接 - 它就在那里(以及更多)。
$$
is the PID of the current shell
是的,每个shell都有自己的PID(除非它是一些自制的shell而不是fork
来创建一个“新的”shell)。
答案 1 :(得分:3)
1)有一个变量,通常是$$
:
edd@max:~$ echo $$ # shell itself
20559
edd@max:~$ bash -c 'echo $$' # new shell with different PID
19284
edd@max:~$ bash -c 'echo $$' # dito
19382
edd@max:~$
2)是的,操作系统/内核会为你做这件事。
答案 2 :(得分:0)
linux中的top命令(Ubuntu)用他们的pid显示linux中所有正在运行的程序的内存使用情况。杀死pid会杀死这个过程。