ps -e | grep python 直到系统中运行某个 python 进程

ps -e | grep python 直到系统中运行某个 python 进程

我想看看是否有某个 python 进程正在运行。我已经设置了一个更新 noip 的 python 脚本,并且 cron 每 1 分钟运行一次,但它只需要 2 秒就可以运行并完成,所以我想知道是否有办法执行 ps -e | grep python 并等到屏幕上出现某个 python 进程

答案1

如果你的目标只是观察过程的出现,那么你可以这样做:

watch -n1  "ps -ef | grep command | grep -v grep"

就我个人而言,我经常使用轮询技术pgrepwhile循环,如下所示:

while ! pgrep -f command ; do true; done && echo "Process started"

如果您想在进程出现或消失时运行附加命令,这是一个很好的方法。

测试运行:

在此处输入图片描述

其工作方式非常简单:

  • looppgrep -f command在每次迭代时运行并否定其退出状态。因此,如果未找到进程,则退出状态将1否定为0,从而保持循环运行。
  • 一旦出现该进程,退出状态就变成0,它被否定为1,导致 for 循环终止并显示消息echo

这是一种非常通用的方法,适用于任何 shell 和脚本语言。例如,我在检测ip变化的python脚本当进程出现时运行命令的脚本

相关内容