检查具有特定名称的特定文件是否正在运行?

检查具有特定名称的特定文件是否正在运行?

我想知道是否可以检查具有特定名称的特定文件是否正在运行?我看到很多不同的情况显示 PID 而不是文件名,但宁愿采用文件名路线。例如,假设正在通过 PHP 命令执行一个名为 test.php 的文件(在这种情况下,我们假设该文件只是一个无限循环,以便该文件无限期地运行)。我可以写出任何命令来让我知道这个特定文件当前正在执行吗?如果这不可行,我可以查看当前正在运行的所有 PHP 文件吗?目前使用 Ubunutu 18.04 LTS

答案1

尝试pgrep

pgrep -f test.php

这将输出您的命令的 PID。

选择:

ps aux | grep '[t]est\.php'

这将输出 的相应行ps aux

答案2

另一种选择是使用killall

killall -0 -q test.php && echo test.php is running

尽管该命令的名称如此,但该进程并未被终止。

答案3

#!/bin/sh
processname='login'
if [ "$(pgrep $processname)x" != "x" ]
then
    echo $processname is running
else
    echo $processname is NOT running
fi

使用退出状态而不是返回值的替代版本,并且还使用更紧凑的语法

#!/bin/sh
processname='login'
pgrep $processname > /dev/null
test $? -eq 0 && echo "$processname is running" || echo "$processname is NOT running"

相关内容