linux如何将一个脚本告知进程?

linux如何将一个脚本告知进程?

我运行了脚本 postData.sh,但当我执行“ps -ef”时,我没有在正在运行的程序列表中看到该脚本,但我确实看到额外的 -bash 进程正在运行。我如何确定 pid 以便可以终止当前在后台运行的脚本?

谢谢,Dean

答案1

要获取进程的 PID,请使用:

pidof postData.sh

替代方法:

pgrep postData.sh

答案2

这可能会帮助你找到它,因为它会打印进程 ID、父进程 ID 和扩展命令

ps -eo pid,ppid,start_time,command

这将生成一个便捷的流程树。

pstree -pu

如果你发现有些事情需要暂停,以评估其是否是正确的流程,你可以kill -STOP <pid>使用kill -CONT <pid>

答案3

好的,我解决了。我复制的脚本缺少#!/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,这很烦人,我所有的脚本都已在运行,但我无法区分它们......我想,活到老学到老。

答案4

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

相关内容