2016-03-02 86 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的運行爲特定用戶