在Linux中如何运行程序并知道它的进程ID(PID)?

5

如何在Linux中运行程序并知道它的PID?

如果我有几个相互运行的shell,它们是否都有不同的PID?

3个回答

18

格雷格的维基拯救了我们:

  • $! 是最后一个放入后台运行的进程的PID。
  • kill -0 $PID 会检查进程$PID是否仍在运行。仅用于当前进程或其子进程启动的进程,否则PID可能已被回收利用。
  • wait 会等待所有子进程退出后再继续执行。

实际上,只需阅读链接 - 所有内容都在那里(还有更多)。

$$是当前shell的PID

是的,每个shell都会有自己的PID(除非它是一些不使用fork创建“新”shell的自制shell)。


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) 是的,操作系统/内核会自动为您完成这个任务。


如何使用$$变量?它是否包含上次运行程序的PID或其他内容? - Suzan Cioc
看看我给出的例子。对于 shell,它有自己的 PID。 - Dirk Eddelbuettel
2
在bash中,$!表示最后一个后台进程的PID。 - dldnh
@dldnh,是否可以在sh中接收相同的内容? - Suzan Cioc
@Dirk 但能否知道的不是PID或脚本,而是由此脚本运行的程序的PID呢? - Suzan Cioc
显示剩余2条评论

0

在Linux(Ubuntu)中,top命令显示所有正在运行的程序的内存使用情况及其pid。通过杀死pid可以终止该进程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接