Это, вероятно, был плохой метод, но я запускал ps aux | grep x | wc -l
его как часть оператора if в скрипте. Когда я запускал его из командной строки как обычный пользователь, результатом был бы 1, если бы процесс не был запущен, из-за этой раздражающей странности, при которой появляется процесс grep.
Это все хорошо, но я записал результаты, и в большинстве случаев ps aux | grep x | wc -l
запуск скрипта /etc/init.d возвращал 0 строк. Почему бы и нет?