In Capistrano 2.x Sie einfach hinzufügen konnte: on_error =>: so weitermachen:Wie geht es weiter, wenn Skript (Fehler) ausfällt und erfassen die Ausgabe mit Capistrano 3
task :bad_script, :on_error => :continue do
my_error = capture('/path/to/tomcat/shutdown.sh')
end
Ich sehe keine Möglichkeit, dies in Capistrano 3.x oder ssh-kit (die zugrunde liegende Kommunikation) zu tun. Jede Hilfe wäre willkommen.
task :bad_script do
server_is_down
on roles :all do
begin
server_is_down = capture('/path/to/tomcat/shutdown.sh')
rescue
#do something if server_is_down has the correct text
end
end
end
end
Ich habe versucht, die neue Art und Weise umgibt, in beginnen/Blöcke Rettung aber nur stoppt sie von erroring aber nicht die Ausgabe von dem Fehler zurück.
Ich würde immer noch gerne wissen, wie das geht, aber ich habe einen Weg gefunden, es für meinen einen Fall zu brauchen, und das ist nur Server zu setzen, wenn es fehlschlägt.
task :bad_script do
server_is_down = false
on roles :all do
begin
execute('/path/to/tomcat/shutdown.sh')
rescue
server_is_down = true
end
end
end
end
Das setzt voraus, dass es nur Fehler, wenn die Abschaltung erfolgt.
Von dem, was ich sehe in https://github.com/capistrano/sshkit/blob/7f779a9a24fcc7fae179a20a652429e4bac454fa/lib/sshkit/backends /netssh.rb, sollte es keine Ausnahmen auslösen –
Von https://github.com/capistrano/sshkit/blob/52797aeecc07190ca47ec5c3315243cd95b568fd/EXAMPLES.md „Execute und einen Fehler auslösen, wenn etwas schief geht auf Hosts zu tun | host | ausführen! (: echo, '"Beispiel Nachricht!" 1> & 2; false') Ende Dies wird SSHKit :: Command: Failed mit der # Nachricht "Example Message!" ', Die den Befehl zum Abbruch führen wird. –
Ich habe keine Kontrolle über die ausgelöste Ausnahme, also wie würde ich einen Wert in dieser Ausnahme zurückgeben? Ich bekomme, wie Capture funktioniert, ich möchte, dass es etwas zurückgibt, wenn es scheitert. Es gibt viele Gründe, warum ein Skript nicht funktionieren würde, ich würde nach einem bestimmten suchen und etwas machen, wenn es diesen "Fehler" hat. –