如果 运行 在 Raspbian 中停止 Java 进程
Stop Java Process if Running in Raspbian
我想确保 Raspbian 中的 java 进程在启动它的新实例之前已停止。
到目前为止,我的方法一直是尝试创建一个单行命令来从命令行停止进程,因为这是将此步骤包含在 GO 持续交付工具中的最简单方法。到目前为止,我能够想出这个 解决方案 ,它有效地停止了进程:
kill $(jps -m | grep NameOfTheMainClass | awk '{print }')
但问题是当进程未启动时,kill 失败,因为它没有 pid 信号。我该如何解决?
尝试使其成为有条件的:
export MAIN_CLASSNAME=""
isRunning()
{
PID=`ps ax | grep MAIN_CLASSNAME | grep -v grep | awk '{print }'`
is_running="false"
if [ ! -z "$PID" ]; then
is_running="true"
fi
test "$is_running" = "true"
}
if isRunning; then
kill $PID
fi
如果你喜欢单线
JPID=$(jps -m | grep NameOfTheMainClass | awk '{print }') && [ -z "$JPID" ] || kill $JPID
我想确保 Raspbian 中的 java 进程在启动它的新实例之前已停止。
到目前为止,我的方法一直是尝试创建一个单行命令来从命令行停止进程,因为这是将此步骤包含在 GO 持续交付工具中的最简单方法。到目前为止,我能够想出这个 解决方案 ,它有效地停止了进程:
kill $(jps -m | grep NameOfTheMainClass | awk '{print }')
但问题是当进程未启动时,kill 失败,因为它没有 pid 信号。我该如何解决?
尝试使其成为有条件的:
export MAIN_CLASSNAME=""
isRunning()
{
PID=`ps ax | grep MAIN_CLASSNAME | grep -v grep | awk '{print }'`
is_running="false"
if [ ! -z "$PID" ]; then
is_running="true"
fi
test "$is_running" = "true"
}
if isRunning; then
kill $PID
fi
如果你喜欢单线
JPID=$(jps -m | grep NameOfTheMainClass | awk '{print }') && [ -z "$JPID" ] || kill $JPID