Я возился с различными способами сделать это в bash, и я обнаружил, что pgrep program > /dev/null || program
- самый короткий / самый элегантный способ сделать это. Есть ли лучший метод, чем этот?
С помощью pgrep
вы можете использовать другие программы, а не только свои. Если вы хотите быть уверенным в правильности выбранной программы, используйте вместо этого pidof
.
Вы также можете использовать start-stop-daemon
с файлом PID. start-stop-daemon
проверит, запущена ли программа, и запустит ее при необходимости. Это то, что используется в большинстве сценариев инициализации.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram