2016-05-11 9 views
0
exec { "stop old application instance": 
    cwd => "${install_dir}", 
    path => ['/usr/bin','/bin','/usr/sbin','/sbin', '/bin/unlink', '/usr/local', '/usr/local/bin/'], 
    onlyif => "test -e '${install_dir}/${app_package_dir}/processes.json'", 
    group => 0, 
    user => 'root', 
    command => "pm2 delete /var/lib/application_folder/processes.json" 
} 

Marionette bleibt hier stecken und kann den Befehl nicht ausführen. Den Grund nicht verstehen. Fehlerprotokoll ist unten gegebenMarionette führt Befehl nicht aus. Feststecken und Timeout geben

Error: Command exceeded timeout 
Wrapped exception: 
execution expired 
Error: /Stage[main]/application::Install/Exec[stop old application instance]/returns: change from notrun to 0 failed: Command exceeded timeout 

Jede Hilfe wird sehr geschätzt.

+0

angeben müssen. Das Ausführen in '--debug' Modus sollte Ihnen mehr Details darüber geben, was passiert. –

Antwort

0

https://ask.puppet.com/question/1308/command-exceeded-timeout/

Puppet standardmäßig erwartet Ihren Befehl in 300 Sekunden oder weniger ausgeführt zu beenden. Dann gibt es das Warten auf und nimmt an, dass der Befehl fehlgeschlagen ist.

Ich weiß nichts über pm2, um Ihnen zu helfen herauszufinden, warum Ihr Befehl so lange dauert. Aber wenn das normal ist, dann über den Link empfiehlt Ihnen, fügen

timeout => 1800,

auf Ihre Puppe Definition.

+0

Danke für die Antwort, aber es ist kein Timeout-Problem. Puppet erhält den pm2-Befehl nicht. Ich habe mit Timeout 0 versucht. –

+1

@MustafaMamun, aus dem Log-Auszug, es sieht sicher * als ob Puppet versucht, den Befehl auszuführen. –

0

Ich würde empfehlen, manuell zu finden, woher der pm2 Befehl kommt ($ which pm2) und dann den gesamten Pfad des Befehls anstelle der Verwendung der path Eigenschaft. Etwas wie folgt aus:

exec { "stop old application instance": 
    cwd => "${install_dir}", 
    onlyif => "test -e '${install_dir}/${app_package_dir}/processes.json'", 
    user => 'root', 
    command => "/usr/bin/pm2 delete /var/lib/application_folder/processes.json", 
    logoutput => 'onfailure', 
} 

Beachten Sie die logoutput Eigenschaft, um die Ausgabe des Befehls zu sehen, nur für den Fall etwas kaputt geht. Ich glaube nicht, dass Sie die Gruppe

+0

Versuchte, es funktioniert nicht. –

+0

@ Mustafa.Mamun Gleicher Fehler? –