【发布时间】:2017-03-27 06:50:55
【问题描述】:
我为查找进程并杀死它而编写的 shell 脚本不起作用。我已经尝试了 stackoverflow 中的所有帖子,但没有一个适合我
脚本如下:
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
这里的问题是,虽然 echo 给出了正确的 PID 说 12345 但是kill会抛出错误
: arguments must be process or job IDs45
我不明白为什么只有最后两位 PID 被传递给 kill?
【问题讨论】:
-
如果你有
pkill然后使用它 -
如果我从 bash shell 手动运行 kill 它工作正常。
-
然后使用
pkill -f process_name -
它工作了,谢谢。但是为什么 kill 在 shell 脚本中失败,但是如果我在 bash 中编写命令就可以了
-
@anubhava 它没有给出任何错误,但同时它没有终止进程。