Ich muss einen Job (mit meinem Webserver) auf einem entfernten Rechner ausführen, der ungefähr 10 Minuten dauert.
Ich habe das pxssh -Modul in Python für das selbe verwendet, aber es gibt mir einen "Zeitüberschreitungsfehler" (nicht blockierend).
Nun benutze ich paramiko , aber das kommt zurück, sobald es die Anweisung gibt.
Ich möchte, dass der Webserver wartet, bis der Job abgeschlossen ist. Gibt es dafür ein Python-SSH-Modul?
Oder
Können wir dasselbe erreichen, indem wir Konfigurationseinstellungen von pxssh
oder paramiko
ändern?
Sie können die Methode recv_exit_status
auf dem Kanal verwenden, um zu warten Damit der Befehl abgeschlossen wird:
recv_exit_status (selbst)
Geben Sie den Exit-Status aus dem Prozess auf dem Server zurück. Dies ist hauptsächlich nützlich, um die Ergebnisse eines exec_commands abzurufen. Wenn der Befehl noch nicht beendet ist, wartet diese Methode bis zum Abschluss oder bis der Kanal geschlossen wird. Wenn vom Server kein Exit-Status bereitgestellt wird, wird -1 zurückgegeben.
Zum Beispiel:
%Vor%Tags und Links python timeout ssh paramiko nonblocking