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.