Provavelmente era um método ruim, mas eu estava executando ps aux | grep x | wc -l
como parte da instrução if em um script. Quando executei isso na linha de comando como um usuário normal, o resultado seria 1 se o processo não estivesse em execução, por causa daquela peculiaridade irritante em que o processo grep aparece.
Tudo bem, mas registrei os resultados e, na maioria das vezes, ps aux | grep x | wc -l
executado como um script /etc/init.d retornaria 0 linhas. Por que isso aconteceria?