linux - 使用shell脚本自动杀死进程

标签 linux shell

我正在寻找一个可以找到 PID 的命令,例如:

ps -ef | grep com.sds.afi.rte.cosmos-1.0.0.jar
cosmos    4690  4689  3 14:27 pts/8    00:00:06 java -Dlog4j.debug -Dlog4j.configuration=file:/data/cosmos/sim/bin/log4j.xml -jar com.sds.afi.rte.cosmos-1.0.0.jar
cosmos    5484  5482  0 14:30 pts/11   00:00:00 grep com.sds.afi.rte.cosmos-1.0.0.jar

然后使用以下方法杀死这些进程:

kill -9 pid

我怎样才能制作一个 shell 脚本来自动执行上述所有操作?

最佳答案

killall java

或者更笼统地说:

killall <processname>

有时我有同名的进程,但命令行参数不同。要终止此类进程或任何任意进程而无需输入 ps 然后终止 pid,我这样做:

ps aux | grep <something> | awk '{print $2}' | xargs kill

在哪里

  • <something>是您要在 ps aux 中搜索的任何短语 命令的输出。
  • awk '{print $2}'只会过滤掉第二个 列,这是一个 PID 列表
  • kill将在每个 那些 PID。

编辑:正如 tripleee 指出的那样,猛烈抨击 kill -9 不是个好主意。在一个过程中,除非绝对需要。所以删除了 -9以上命令的一部分

关于linux - 使用shell脚本自动杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389543/

相关文章:

c++ - 消息: [unixODBC][Driver Manager]Can't open lib 'MySQL ODBC 5.1 Driver' : file not foundnSQLSTATE: 01000

shell - 删除除一个以外的所有目录

shell - 为什么带有嵌套反引号的 shell 命令会失败?

linux - 我在 bash 中的函数

linux - 仅查找目录中的文件

linux - gcc 和 gcc c++ 有什么区别?

linux - 执行两个字节

java - 从 postgresql-9.1 服务获取 LD_LIBRARY_PATH 值

bash - 如何在 mailx 命令中抄送邮件列表

perl - 读取 Perl 中 shell 脚本的控制台输出