Verificação do status do serviço Puppet para vários processos

Eu tive uma situação em que um único script init.d dispara vários processos. Para que o puppet pudesse verificar se o serviço estava em execução, tive que usar grep ps aux para os dois processos.

A declaração de status abaixo de greps ps aux para “foobar” ou “foocat” e canaliza-o para wc -l para obter o número de linhas, que deve ser pelo menos 2. “egrep -v egrep” exclui o processo egrep real, então ele o faz não é contado acidentalmente.

service { foo’:
ensure => running,
enable
=> true,
hasstatus
=> false,
# checks both foobar and foocat are running
status
=> test `ps aux | egrep ‘foobar|foocat’ | egrep -v egrep | wc -l` -gt 1”,
require => File[‘/etc/init.d/foo’],
}