我想确保Raspbian中的java进程在启动它的新实例之前停止。
到目前为止,我的方法是尝试创建一个单行命令来从命令行停止进程,因为这是在GO连续交付工具中包含此步骤的最简单方法。到目前为止,我能够提出这个解决方案,它有效地阻止了这个过程:
kill $(jps -m | grep NameOfTheMainClass | awk '{print $1}')
但问题是,当进程未启动时,kill会失败,因为它没有pid信号。我怎么能解决这个问题?
答案 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