我怎样才能杀死shell脚本中的进程

时间:2016-02-23 14:34:03

标签: linux bash

我的bash脚本有:

usage: kill [ -s signal | -p ] [ -a ] pid ...
       kill -l [ signal ]

但是,我在运行时会收到以下信息:

{{1}}

任何想法,如何解决这条问题?

3 个答案:

答案 0 :(得分:2)

通常,您的命令是正确的。 如果正在运行foo.jar进程,其PID将传递给kill并且(应该)终止。

由于您使用kill作为输出,这意味着您实际上是在没有参数的情况下调用kill(尝试自行运行kill,您将会看到同样的消息)。这意味着管道中没有输出实际到达xargs,这反过来意味着foo.jar没有运行。

尝试运行ps aux | grep foo.jar | grep -v grep并查看您是否真的看到了结果。

答案 1 :(得分:1)

您可以在命令中享受半打管道,但您可能需要查看pkill命令!

  

说明

     

pkill命令搜索正在运行的系统上的进程表,并发出符合条件的所有进程的信号        在命令行中给出。

pkill foo.jar

答案 2 :(得分:-4)

未经测试且最佳猜测(小心)

kill -9 $(ps -aux | grep foo.jar | grep -v grep | awk '{print $2}') 

我重新迭代 UNTESTED ,因为我不在工作,无法访问putty或Unix。

我的理论是发送kill -9命令并从子shell命令调用中获取进程id。