2016-03-23 60 views
0

我需要一個shell腳本來列出所有未使用(正在運行)的pid文件。LINUX如何獲得非運行PID-s?

如何檢查pid是否未運行?

+0

從文件(文件內容?文件名?)中獲取pid,然後檢查該pid的進程列表。 –

+0

列出/ var/run目錄中的所有.pid文件。我知道每個.pid文件都包含一個顯示其進程id的數字。我必須將其與所有正在運行的進程進行比較。如果正在運行的進程不包含該pid那麼我必須將其寫入標準輸出。 問題是我無法比較所有正在運行的進程的pid。 – Aaron

+1

'ps aux | grep'^ $ pid'',基本上 –

回答

1

這是你在找什麼?

#!/bin/bash 
while read -d $'\0' -r f; do 
    pid="$(cat "$f")" 
    if ! ps "$pid" &> /dev/null; then 
    echo "$pid" 
    fi 
done < <(find /run -type f -regextype posix-basic -regex '^.*\.pid$' -print0)