用于终止 Java 进程的 Shell 脚本 - 不起作用



我为找到进程并杀死它而编写的 shell 脚本不起作用。我已经尝试了堆栈溢出中的所有帖子,但没有一个适合我

脚本如下:

 pid=`ps aux|grep 'java -server -Xmx512M -jar -Dsolr.solr.home=. start.jar' | grep -v grep | awk '{print $2}'`
echo Stopping Solr Server with PID $pid
kill $pid

这里的问题是,虽然回声给出了正确的 PID 说 12345但是杀戮会抛出错误

: arguments must be process or job IDs45

我不明白为什么只有PID的最后两位数被传递来杀死?

由于您有可用的pkill,因此最好使用 pkill 而不是 long pipeline 命令:

pkill -if 'java.*start.jar'

正则表达式java.*start匹配任何与javastart.jar匹配的命令行

最新更新