【发布时间】:2012-02-22 20:23:10
【问题描述】:
我正在尝试检查某个特定进程是否正在运行,如果是,请尝试杀死它。
到目前为止,我想出了以下几点:
PID=$(ps aux | grep myprocessname | grep -v grep | awk '{print $2}')
if [ -z $PID];
then
echo Still running on PID $PID, attempting to kill..
kill -9 $PID > /dev/null
fi
但是当我运行它时,我得到以下输出:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
在 unix 上静默杀死正在运行的进程的最佳方法是什么?
【问题讨论】:
-
你确定你想要
-z吗?-n似乎更有可能,if [[ -n $PID ]]。 -
这行得通吗?:kill -s 9 $PID > /dev/null
-
切线,ITYM
ps aux | awk '/[m]yprocessname/{print $2}'。另见partmaps.org/era/unix/award.html