2013-10-22 63 views
2

我不能爲我的生活找出爲什麼pgrep沒有返回我的過程的PID。然後,在最後一次徒勞的嘗試中,我只是輸入了可執行文件名稱的一部分,而且還有PID。導致此實驗的原因:爲什麼我的pgrep模式似乎有長度?

bash-4.1$ ./test_abcde_12345_vwxyz_67890.sh & 
bash-4.1$ 
bash-4.1$ ps -ef | grep test_abcde_12345_vwxyz_67890 
me 16695 21716 0 06:04 /root/dev/pts/2 00:00:00 /bin/bash ./test_abcde_12345_vwxyz_67890.sh 
me 16945 22027 0 06:04 /root/dev/pts/3 00:00:00 grep test_abcde_12345_vwxyz_67890 
bash-4.1$ pgrep test_abcde_12345_vwxyz_67890 
bash-4.1$ pgrep test_abcde_12345_vwxyz_6789 
bash-4.1$ pgrep test_abcde_12345_vwxyz_678 
bash-4.1$ pgrep test_abcde_12345_vwxyz_67 
bash-4.1$ pgrep test_abcde_12345_vwxyz_6 
bash-4.1$ pgrep test_abcde_12345_vwxyz_ 
bash-4.1$ pgrep test_abcde_12345_vwxyz 
bash-4.1$ pgrep test_abcde_12345_vwxy 
bash-4.1$ pgrep test_abcde_12345_vwx 
bash-4.1$ pgrep test_abcde_12345_vw 
bash-4.1$ pgrep test_abcde_12345_v 
bash-4.1$ pgrep test_abcde_12345_ 
bash-4.1$ pgrep test_abcde_12345 
bash-4.1$ pgrep test_abcde_1234 
16695 
bash-4.1$ pgrep test_abcde_123 
16695 
bash-4.1$ pgrep test_abcde_12 
16695 
bash-4.1$ pgrep test_abcde_1 
16695 
bash-4.1$ pgrep test_abcde_ 
16695 
bash-4.1$ pgrep test_abcde 
16695 

我找不到手動頁面中記錄的此行爲。這是正常的嗎?它爲什麼這樣工作?

回答

2

我的系統上的man頁面包括這樣一個字條:

用於匹配的進程名是有限的存在在/ proc/PID/STAT的輸出的15個字符。使用-f選項與完整的命令行/ proc/pid/cmdline匹配。

+0

A-ha。我的系統上的手冊頁也包含這個註釋,但我錯過了它。 –

相關問題