在bash脚本中杀死进程

时间:2014-04-29 08:00:04

标签: linux bash

我想杀死并重新启动进程,此命令适用于交互模式,但不适用于脚本模式。

任何建议:

echo "Killing the running server"
kill $(ps -a | grep 'myserver.jar' | awk '{print $2}') ||  echo 'No active myserver' ; exit 1;

3 个答案:

答案 0 :(得分:2)

这可能有效:

v=$(pgrep -f myserver.jar)
if [ $? == 0 ]; then
    kill $v
else 
    echo "no server"
fi
# start server...

答案 1 :(得分:0)

当一个命令在交互式中运行正常而不是[batch,crontab,...自己动手]时,你应该仔细检查:

  • 您正在使用相同的shell(而不是例如批量交互和bourne shell中的bash)
  • 你有相同的路径

如果还不够,请查看所有环境变量...

答案 2 :(得分:0)

也许可以考虑尝试pkill

pkill myserver.jar