使用 ps aux 获取进程 ID

使用 ps aux 获取进程 ID

我是 shell 编程的新手。假设我从终端启动了一个程序(例如 NetBeans),如果我输入

ps aux|grep netbeans

我得到了输出

pre      18775  1.2  0.0  12524  1972 pts/3    S    20:17   0:00 

其中 18775 指定进程的 PID 等。

然后我用它杀死它

kill 18775.

NetBeans UI 随即消失。如果我尝试使用第一个命令获取 pid,我仍然会得到:

pre      19137  0.0  0.0   9136  1068 pts/3    S+   20:19   0:00 grep --color=auto netbeans

如果进程已经被杀死,为什么还显示上述输出?

答案1

grep 正在对自身进行 grep。尝试如下操作:

ps aux |grep [n]etbeans

这使得 grep 不会在输出中显示自己

答案2

绝不ps与 一起使用grep

相反,使用killall netbeans,pkill netbeans来终止它。对于进程 ID pgrep netbeans

更多关于ps 和 grep

答案3

因为这是排队等待运行的 grep 进程的 PID ps aux

相关内容