0

新しいインスタンスを起動する前に、Raspbian の Java プロセスが停止していることを確認したいと考えています。

これまでの私のアプローチは、コマンド ラインからプロセスを停止する 1 行のコマンドを作成することでした。このステップを GO continuos 配信ツールに含める最も簡単な方法だからです。これまでのところ、プロセスを効果的に停止するこのソリューションを思いつくことができました。

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

しかし、問題は、プロセスが開始されていない場合、通知する pid がないため、kill が失敗することです。どうすれば修正できますか?

4

2 に答える 2

1

ワンライナーを好む場合

JPID=$(jps -m | grep NameOfTheMainClass  | awk '{print $1}') && [ -z "$JPID" ] || kill $JPID
于 2015-06-03T09:34:23.193 に答える
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
于 2015-06-03T09:29:46.977 に答える