我试图这样做:
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"
但它只是打印“杀死”并且不会再次启动它。 如果我分开做所有这些东西 - 它是有效的,但对所有人来说 - 不是......
Допоможітьхтозможе...
答案 0 :(得分:0)
执行它的脚本,它包含" service_name"在它的名字?然后它显然符合开始被你的for循环杀死的标准并且自杀。
如果没有,那么仍然grep service_name
仍然符合杀死条件(在其cmd行中有service_name) - 对于grep中的固定字符串我通常会将它们写为grep "s[e]rvice_name"
,其他更喜欢放另一个|grep -v grep
进入awk之前的管道