Я возился с различными способами сделать это в bash, и я нашел pgrep program > /dev/null || program
самый короткий / самый элегантный способ сделать это. Есть ли лучший метод, чем этот?
8
С pgrep
, вы можете соответствовать другим программам, чем только ваши. Если вы хотите быть уверенным, что подбираете правильную программу, используйте pidof
вместо этого.
Вы также можете использовать start-stop-daemon
с файлом PID. start-stop-daemon
проверит, запущена ли программа, и запустит ее при необходимости. Это то, что используется в большинстве сценариев инициализации.
/lib/lsb/init-functions
библиотеке, которую большинство сценариев инициализации анализируют для использования функций-оболочек, таких какstart_daemon
илиpidofproc
.источник