4

pgrep私は自分のプロセスの PID を返さない理由を一生理解できませんでした。次に、最後の無駄な試みで、実行可能ファイルの名前の一部を入力しただけで、ほら、PID がありました。これがこの実験につながりました:

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

この動作がマニュアル ページに記載されているのを見つけることができませんでした。これは正常ですか?なぜこのように機能するのですか?

4

1 に答える 1

5

私のシステムの man ページには、次のメモが含まれています。

照合に使用されるプロセス名は、/proc/pid/stat の出力に存在する 15 文字に制限されています。-f オプションを使用して、完全なコマンド ライン /proc/pid/cmdline と照合します。

于 2013-10-22T12:21:23.953 に答える