Seu exec só será executado se o pgrep retornar 0 . A página de manual pgrep informa que o código de saída do pgrep será zero (0) somente quando os processos correspondentes forem encontrados e retornará um (1) quando não houver processos correspondentes. A documentação do fantoche, por outro lado, diz-nos que o parâmetro onlyif faz com que o recurso seja ser executado somente quando o comando no parâmetro retornar 0.
Em vez de onlyif
, você deve usar o parâmetro , a menos que . Dessa forma, o seu exec só funcionará quando o seu pgrep retornar diferente de zero. não encontra nenhum processo correspondente.
exec { "execute me":
unless => "pgrep -fc 'ruby execute.rb'",
command => "execute me",
}