linux - 如何在 shell 脚本中终止进程

标签 linux bash

我的 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/

相关文章:

java - Tomcat 许多 NioBlockingSelector$BlockPoller 实例填满了内存

linux - 在 i.MX6 的 Qt5 OpenGL 测试交叉编译期间发现不兼容的 libc.so.6

Linux 查找脚本结果未附加到输出文本文件

c++ - 如何使用 asio 库打开 usb 端口并接收它的数据?

bash - 在 bash 中如何进行 if 语句运算?

linux - 使用 "ps"查找某个时间范围内的进程

php - 允许脚本读取文件但阻止用户直接查看文件

linux - Bash 命令如果命令成功

bash - 在 bash 中,函数内部的 heredoc 返回语法错误

linux - 为什么我的 Bash 脚本将 <feff> 添加到文件的开头?