我知道我可以用来pgrep -fl example.sh
查找脚本的 PID ,但是如果类似于以下内容,则example.sh
这不起作用:example.sh
(while true; do
sleep 5
done) &
运行./example.sh
然后pgrep -fl example.sh
不返回任何输入。我如何找到example.sh
它休眠时的PID?
答案1
您可能已经注意到您的example.sh
脚本立即退出。这是因为在这种情况下,sleep
命令通过 发送到后台&
。
在按顺序执行下一个命令之前,您的脚本不会等待sleep
完成。
sleep
在这种情况下将无法按预期方式工作(作为延迟)。
绝对没有理由sleep
在后台运行。
笔记: pgrep -fl processname
不仅会输出PID,还会输出进程名称
-f, --full
The pattern is normally only matched against the process name. When -f is set, the full command line is used.
-l, --list-name
List the process name as well as the process ID. (pgrep only.)