如何在Linux中运行程序并知道它的PID?
如果我有几个相互运行的shell,它们是否都有不同的PID?
格雷格的维基拯救了我们:
$!
是最后一个放入后台运行的进程的PID。kill -0 $PID
会检查进程$PID
是否仍在运行。仅用于当前进程或其子进程启动的进程,否则PID可能已被回收利用。wait
会等待所有子进程退出后再继续执行。实际上,只需阅读链接 - 所有内容都在那里(还有更多)。
是的,每个shell都会有自己的PID(除非它是一些不使用fork
创建“新”shell的自制shell)。
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) 是的,操作系统/内核会自动为您完成这个任务。
在Linux(Ubuntu)中,top命令显示所有正在运行的程序的内存使用情况及其pid。通过杀死pid可以终止该进程。
$$
变量?它是否包含上次运行程序的PID或其他内容? - Suzan Ciocsh
中接收相同的内容? - Suzan Cioc