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