2012-07-06 119 views
0

例如,Linux命令查找正在運行的進程的「count」?

有3個過程我必須找到運行過程的 「計數」 在當前目錄

命名../sample

[根@ SP3樣品]#PS -eaf | grep perl

root 14104 1 58 08:39? 03:31:34 perl example1.pl

root 17441 1 41 09:09? 02:17:24 perl example2.pl

root 24543 1 0 Jul05? 00:00:00的perl sample.pl

[根@ SP3樣品]#

結果我不得不返回是3

I have currently in sample directory and i have to count the number of process in same directory

請張貼任何溶液。

+0

'ps aux | grep perl | grep -vc grep' – wildplasser 2012-07-06 10:49:28

回答

5

嘗試

LOCAL_PWD = pwd 
ps -auxeaf| grep $LOCAL_PWD| wc -l 

廁所-l計算行

至於如何顯示的流程完整路徑,請看看here

+0

這會導致所有進程在所有目錄中運行,但我必須統計當前目錄中正在運行的所有進程。 – Anand 2012-07-06 11:16:37

+0

然後在命令的管道之間添加一個當前目錄的grep,並使用ps開關顯示進程的完整路徑 – BigMike 2012-07-06 11:45:47

+0

我試過這個 ps -eaf | grep perl | grep/var/www/anand/sample |廁所-l 但它返回數0請張貼任何解決方案 – Anand 2012-07-06 12:24:59

2

這個真沒有這樣做的正確的地方(有一個stackexchange的linux部分)。但是您可以使用wc來計算任何輸出中的行數,因此請將您的命令輸入爲:ps -eaf | grep perl | wc -l。順便說一下,我還建議使grep命令與grep [p]erl不匹配(在任何一個字符周圍放置[]只會匹配'perl',但grep命令不再具有'perl')。

如果它對你有用,我已經把我在下面的評論中提到的腳本放在一起。

total=0 
for file in $(find -executable -type f) ; do 
    echo "Checking $file:" 
    count=$(ps -ef | awk '{print $8}' | grep "^.*/*${file##*/}$" | wc -l) 
    echo "$count processes found." 
    total=$(($total + $count)) 
done 
echo $total 
+0

這導致這一切的一切目錄我有運行過程中計數 所有進程當前目錄運行。 – Anand 2012-07-06 11:15:06

+0

它聽起來像你說的,好像你已經有物品清單,只是想讓它們數過來。我看你現在已經澄清,可惜這是一個困難得多的是專門爲PS不一定提供該信息(據我所知)做的。有一個小腳本能夠檢查當前目錄中的所有可執行文件,並在ps輸出中按名稱查找這些文件嗎?當然,缺點是如果你在別處有一個可執行文件的同名文件,你不能輕易區分它們。 – Thor84no 2012-07-06 12:30:58

+0

這看起來像提供給這真的很重要的問題 – fork0 2012-07-07 13:28:25

-1

如果通過運行你的意思是 「排隊等待執行」:

ps ax -o stat,args |grep '^R'|wc -l 
+0

的繁忙系統上嘗試代碼,我必須計算當前目錄中運行的所有進程。 – Anand 2012-07-06 11:17:22

+0

這對於一個簡單的shell魔法來說有點難度。看看lsof:帶有工作目錄的進程必須引用它。因此,您可以列出引用給定目錄的所有進程,而不是找出其中哪些實際排隊執行。要獲取進程列表:'lsof的.'(對於當前目錄) – fork0 2012-07-06 12:24:40

+0

我已經試過這 PS -eaf | grep的perl的| grep/var/www/anand/sample | wc -l 但它返回計數0請張貼任何解決方案 – Anand 2012-07-06 12:25:33

0

簡單: PS -eaf | grep perl | grep -v grep | wc -l

+0

什麼是grep perk? – Roylee 2014-11-08 14:33:44

+0

錯字 - 應該是perl。固定 – 2014-12-08 06:41:54