Cara paling elegan untuk memeriksa apakah suatu proses sedang berjalan, dan mulai jika tidak?


8

Saya telah bermain-main dengan berbagai cara untuk melakukan ini di bash, dan saya telah menemukan pgrep program > /dev/null || programcara terpendek / paling elegan untuk melakukan ini. Apakah ada metode yang lebih baik dari ini?

Jawaban:


9

Dengan pgrep, Anda mungkin cocok dengan program lain dari hanya program Anda. Jika Anda ingin memastikan cocok dengan program yang tepat, gunakan pidofsaja.

Anda juga dapat menggunakan start-stop-daemondengan file PID. start-stop-daemonakan memeriksa apakah program sedang berjalan dan mulai jika diperlukan. Inilah yang digunakan di sebagian besar skrip init.


Akan melalui file manual start-stop-daemon dan itu terlihat bagus. Terima kasih atas wawasannya!
aperson

1
Anda mungkin juga tertarik pada /lib/lsb/init-functionspustaka, yang sebagian besar skrip init menguraikan untuk menggunakan fungsi wrapper seperti start_daemonatau pidofproc.
ℝaphink

1
[ -z `pidof program` ] || echo "program runing"
# or 
[ -z `pidof program` ] && OtherProgram 

Bisakah Anda jelaskan kepada OP apa yang harus dilakukan dengan perintah ini?
nanofarad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.