如果在Raspbian中运行,请停止Java进程

时间:2015-06-03 09:13:34

标签: java command-line-interface raspbian application-shutdown

我想确保Raspbian中的java进程在启动它的新实例之前停止。

到目前为止,我的方法是尝试创建一个单行命令来从命令行停止进程,因为这是在GO连续交付工具中包含此步骤的最简单方法。到目前为止,我能够提出这个解决方案,它有效地阻止了这个过程:

kill $(jps -m | grep NameOfTheMainClass | awk '{print $1}')

问题是,当进程未启动时,kill会失败,因为它没有pid信号。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果您喜欢单行

JPID=$(jps -m | grep NameOfTheMainClass  | awk '{print $1}') && [ -z "$JPID" ] || kill $JPID

答案 1 :(得分:0)

尝试使其成为条件:

export MAIN_CLASSNAME=""

isRunning()
{
  PID=`ps ax | grep MAIN_CLASSNAME | grep -v grep | awk '{print $1}'`
  is_running="false"
  if [ ! -z "$PID" ]; then
    is_running="true"
  fi
  test "$is_running" = "true"
}

if isRunning; then
  kill $PID       
fi