Shell脚本。如何杀死java进程然后用nohup再次启动它

时间:2016-06-08 17:52:59

标签: java shell ubuntu sh nohup

我试图这样做:

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

但它只是打印“杀死”并且不会再次启动它。 如果我分开做所有这些东西 - 它是有效的,但对所有人来说 - 不是......

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

1 个答案:

答案 0 :(得分:0)

执行它的脚本,它包含" service_name"在它的名字?然后它显然符合开始被你的for循环杀死的标准并且自杀。

如果没有,那么仍然grep service_name仍然符合杀死条件(在其cmd行中有service_name) - 对于grep中的固定字符串我通常会将它们写为grep "s[e]rvice_name",其他更喜欢放另一个|grep -v grep进入awk之前的管道