Program pgrep
dan pidof
bukan hal yang persis sama, tetapi mereka sangat mirip. Sebagai contoh:
$ pidof 'firefox'
5696
$ pgrep '[i]ref'
5696
$ pidof '[i]ref'
$ printf '%s\n' "$?"
1
Seperti yang Anda lihat, pidof
gagal menemukan kecocokan untuk [i]ref
. Ini karena pidof program
mengembalikan daftar semua ID proses yang terkait dengan program yang disebut program
. Di sisi lain, pgrep re
mengembalikan daftar semua ID proses yang terkait dengan program yang namanya cocok dengan ekspresi reguler re
.
Dalam bentuk paling dasar mereka, kesetaraan sebenarnya adalah:
$ pidof 'program'
$ pgrep '^program$'
Sebagai contoh konkret lainnya, pertimbangkan:
$ ps ax | grep '[w]atch'
12 ? S 0:04 [watchdog/0]
15 ? S 0:04 [watchdog/1]
33 ? S< 0:00 [watchdogd]
18451 pts/5 S+ 0:02 watch -n600 tail log-file
$ pgrep watch
12
15
33
18451
$ pidof watch
18451