linux如何告诉脚本的进程?

我运行了一个脚本postData.sh,但是当我做“ps -ef”时,我没有看到程序列表中的脚本正在运行,但是我看到额外的进程正在运行。 我如何确定pid,这样我就可以杀死脚本,因为它现在在后台?

谢谢,Dean

获取进程使用的PID:

 pidof postData.sh 

替代方法:

 pgrep postData.sh 

这可能会帮助您find它,因为它会打印进程ID,父进程ID和扩展命令

 ps -eo pid,ppid,start_time,command 

这将成为一个方便的过程树。

 pstree -pu 

如果你发现了一些你可能希望暂停的东西,为了评估它是否正确的进程,你可以kill -STOP <pid> ,然后继续执行kill -CONT <pid>

好吧,我解决了。 我拷贝的脚本缺less#!/bin/bash并且由于某种原因,当我以ps -ef运行脚本时,它会显示为-bash。 现在我添加了#!/bin/bash ,它正确地显示为

 [root@sdi-prod-01 manytables]# ps -ef | grep postTemp root 29165 28764 1 10:51 pts/12 00:00:00 /bin/bash ./postTemp.sh 1 

grrrrrr,这是烦人的,我所有的脚本已经运行,但我不能告诉他们分开,因为这….生活和学习我猜。

如果这是你最后一个进程,你可以简单地kill $!

使用ps -x输出整个命令。