我的 bash 脚本有:
ps aux | grep foo.jar | grep -v grep | awk '{print $2}' | xargs kill
但是,我在运行时得到以下信息:
usage: kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
有什么想法吗,如何修复这条线?
最佳答案
总的来说,你的命令是正确的。 如果一个foo.jar
进程正在运行,它的PID将被传递给kill
并且(应该)终止。
由于您将 kill
的用法作为输出,这意味着您实际上是在不带参数的情况下调用 kill
(尝试单独运行 kill
,您将看到相同的消息)。这意味着管道中没有输出实际到达 xargs
,这又意味着 foo.jar
未运行。
尝试运行 ps aux | grep foo.jar | grep foo.jar | grep foo.jar | grep foo.jar | grep -v grep
并查看是否确实看到结果。
关于linux - 如何在 shell 脚本中终止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580312/