AIX - 如何使用进程名称而不是 PID 杀死

Posted

技术标签:

【中文标题】AIX - 如何使用进程名称而不是 PID 杀死【英文标题】:AIX - How to kill using process name instead of PID 【发布时间】:2021-08-09 16:04:11 【问题描述】:

有没有办法通过指定进程名称而不是 AIX 的 PID 来终止进程? 例如。对于下面的过程,我想通过指定 sapstartsrv 而不是 10682424 来杀死它

hmsadm 10682424        1   0   Apr 30      -  0:54 /usr/sap/HMS/ASCS01/exe/sapstartsrv pf=/usr/sap/HMS/SYS/profile/START_ASCS01_H\

谢谢。

【问题讨论】:

你如何确定要杀死哪个sapstartsrv 我只需要杀死所有剩余的 sapstartsrv 进程。我想使用进程名杀死的原因是我想自动化进程,就好像用 PID 杀死一样,我首先需要确定 PID,然后作为第二步运行 kill。是否有可以自动执行此操作的脚本 - 首先 grep PID 然后杀死相关的 PID? 【参考方案1】:

试试这个。您试图杀死的进程的第一个字母周围的括号会有所帮助。显然将其更改为有效的服务器。

while true; do date; ping -c4 server; sleep 500; done &

ps -aef | grep -i [p]ing | awk 'print $2' | xargs kill -9

如果这不起作用,有时您必须终止父进程。

ps -aef | grep -i [p]ing | awk 'print $2 " " $3' | xargs kill -9

【讨论】:

【参考方案2】:

@Romeo 感谢您迄今为止的帮助。

不幸的是,仍然出现变量语法错误。很确定语法是正确的,并且根据您的建议。尝试了另一个如下。有什么想法吗?

ps -ef|grep sapstartsrv

  sapadm 16646280        1   0   Apr 20      -  2:55 /usr/sap/hostctrl/exe/sapstartsrv pf=/usr/sap/hostctrl/exe/host_profile -D
  hmzadm 18743480        1   0   Apr 20      -  3:33 /usr/sap/HMZ/ASCS03/exe/sapstartsrv pf=/usr/sap/HMZ/SYS/profile/START_ASCS03_HRSTS -D

ps -ef|grep sapstartsrv|awk 'print $2'
16646280
18743480

kill $(ps -ef|grep sapstartsrv|awk 'print $2')
Variable syntax.

kill -9 $(ps -ef|grep sapstartsrv|awk 'print $2')
Variable syntax.

【讨论】:

在尝试此之前,请使用命令set -xv 启用调试。【参考方案3】:

我正在使用 ping 命令对其进行测试,但遇到了变量语法错误。请指教。

ps -ef|grep ping
wdd500 58786076 50463096   0 14:43:39  pts/0  0:00 ping HRB1000



ps -ef|grep ping|awk 'print $2'
58786076

kill $(ps -ef|grep ping|awk 'print $2')
Variable syntax.

【讨论】:

这对我来说很好。检查您是否正确复制了引号【参考方案4】:

你可以这样使用命令:

kill -9 $(ps -ef|grep sapstartsrv|awk 'print $2')

当然首先检查命令ps -ef|grep sapstartsrv|awk 'print $2'是否只返回你想杀死的进程

【讨论】:

我尝试使用 sapstartsrv 但仍然收到 kill 命令的变量语法错误。有什么想法吗? @userguy,请编辑您的问题并在此处添加您执行的内容和遇到的错误

以上是关于AIX - 如何使用进程名称而不是 PID 杀死的主要内容,如果未能解决你的问题,请参考以下文章

如何用linux组合指令查找某个进程并杀死

如何使用像Android Studio这样的pid杀死进程呢?

killall命令

如何杀死一个知道pid的进程

如何用批处理获取指定程序进程的PID

如何使用 php 中的 pid 杀死 linux 进程?