我遇到以下情況: perl腳本讀取應用程序寫入它的文件pid
,並試圖殺死它。 但問題是我不想殺死另一個進程,所以我檢查當前進程與記錄的PID是否有相同的命令行。如果是這樣,應用程序可能會被殺死。如何僅在當前用戶的進程中找到進程的命令行
以下布魯斯腳本找出CMDLINE:
$PIDCMDLINE = `ps -p $PID -o cmd`;
的問題是,如果另一個實例爲其他用戶是最多的,也許在相同的SID,它會被殺死,因爲它會返回一個有效的命令線,而我不想要那樣的行爲。
我怎麼能限制PS -p只搜索當前用戶的過程(不,簡單ps
不算數,因爲-p nullify
PS的默認效果)
謝謝!
如果你不是根用戶,你不能殺其他用戶的進程。 – choroba
如果您在Linux或其他帶有'/ proc'的系統上,那麼您可以檢查'/ proc/$ PID'的uid。 –