2016-03-02 112 views
1

我在这里看到了很多关于kill命令的讨论。但我的困惑是不同的。我有很多同名的进程,我不得不自动化查杀。因此我不能使用pid。那么是否有可能如果我转到特定路径并使用kill <pname>那么只有与该路径相关的进程会被杀死?
或者有什么方法可以在kill命令中加入路径名?是否kill命令kill特定于linux中的路径

+0

我希望你在这里找到答案..但[这个社区](https://unix.stackexchange.com/)可能会更有用。祝你好运。 – Vandal

+0

您的意思是二进制文件从当前路径加载(显式)的命令,还是其当前工作目录是您所在目录的进程? – tripleee

回答

1

没有,但你当你开始用

yourcommand & echo $! 

的过程中或在一个小的脚本

#!/bin/bash 
yourcommand & 
echo $! >/path/to/pid.file 

可以保存PID包裹。然后用这个pid杀死进程。这是如何管理流程的正常方式。如果你看一下nginx的普通init.d脚本,他们也是这样做的。只需将pid保存在一个文件中,并在停止时读取pid并杀死进程。

3

而不是使用pid,你可以随时使用pkill命令并让它检查一些正则表达式。如果你传递了-f标志,它允许你检查整个命令行而不仅仅是进程名。

像这样的事情可能会做的伎俩:

pkill -TERM -u username -f "mwhome.*weblogic\\.NodeManager" 

-f在这里,您将通过在你的正则表达式
-u也非常有用,这样您只影响pid的运行为特定用户