备用bash脚本,用于检查进程是否正在运行

时间:2014-12-07 21:18:16

标签: bash

使用bash检查进程是否在脚本中运行的最简单,最可靠的方法是什么?

以下是我所拥有的:

x=`ps aux | grep firefox | grep -v grep | awk '{print $2 }'`

if [ $x > 0 ];
then kill -9 $x
echo "Firefox terminated"
else echo "bla bla bla"
fi

4 个答案:

答案 0 :(得分:3)

if x=$(pgrep firefox); then
    kill -9 $x
    # ...
fi

如果你只想杀死这个过程:

pkill -9 firefox

答案 1 :(得分:2)

也许您可以使用pgrep来执行此操作?

来自man page

  

pgrep查看当前正在运行的进程,并将符合选择条件的进程ID列为stdout。

示例:

$> pgrep firefox | xargs -r kill -9

在此示例中,kill命令使用进程的pid。 -r xargs选项只有在有pid时才允许执行kill命令。

答案 2 :(得分:1)

怎么样:

pkill &>/dev/null firefox && echo "ff terminated" || echo "no ff PIDs"

这里不需要-9信号;)

答案 3 :(得分:0)

的pidof:

x=`pidof firefox`
if [[ $x > 0 ]];
then
kill -9 $x
echo "Firefox terminated"
else
echo "bla bla bla"
fi
相关问题