Meus melhores palpites são que $4
em seu comando está sendo engolido pela própria interpolação dos fantoches e que exit 0
não funciona bem devido a problemas de interação com o shell.
Eu tentaria algumas coisas.
- Se o problema for a interpolação de fantoches em
$4
em seu comando, escape do$
assim:status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if (\ != \"online\") rc=3} END { exit rc }'"
(às vezes, barras invertidas são necessárias, mas tenho certeza de que 1 é o suficiente aqui). - Verifique se o comando de teste está realmente funcionando corretamente.
exit
é um shell interno e não tenho certeza de como o fantoche tratará disso. Portanto, use o comando canônico "return success":status => "/bin/true"
-
Talvez
status
esteja sendo substituído porprovider => debian
(o que seria um erro de fantoche), então especifique todos os comandos e use o provedor de base (isso não será habilitado corretamente, no entanto):service { 'postgresql': provider => base, ensure => 'running', start => '/etc/init.d/postgresql start', restart => '/etc/init.d/postgresql restart', stop => '/etc/init.d/postgresql stop', status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if (\ != \"online\") rc=3} END { exit rc }'", }