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
放入管道中
我正在尝试这样做:
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
放入管道中