Shell 脚本。如何杀死 java 进程,然后用 nohup 重新启动它

Shell script. How to kill java process and then start it again with nohup

我正在尝试这样做:

file_name=
#Clear log file
echo > nohup.out 
for PID in $(ps aux | grep service_name | awk {'print '}); do
    kill -9 $PID;
done
echo "Killed old process"
nohup java -Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m -jar $file_name &
echo "Started new process"

但它只是打印 "Killed" 而不会再次启动它。 如果我单独做所有这些事情 - 它正在工作,但对于所有这些 - 不是...

Допоможіть хто зможе...

您执行它的脚本名称中是否包含 "service_name"?然后它显然满足了 begin 被你的 for 循环杀死的标准并自杀了。

如果没有,那么 grep service_name 仍然满足终止条件(在其 cmd 行中有 service_name)——对于 grep 中的固定字符串,我通常将它们写为 grep "s[e]rvice_name",其他人更喜欢在 awk

之前将另一个 |grep -v grep 放入管道中