So starten Sie einen Hintergrundjob neu, der aufgrund eines „gebrochenen Rohrs“ fehlgeschlagen ist

So starten Sie einen Hintergrundjob neu, der aufgrund eines „gebrochenen Rohrs“ fehlgeschlagen ist

Ich hatte einen Hintergrundprozess laufen, dessen Befehl mit „nohup nice“ beginnt. Da dieser normalerweise 20 Stunden dauert, ließ ich ihn die Nacht über laufen. Heute Morgen erhielt ich jedoch die Meldung „Schreiben fehlgeschlagen: unterbrochene Pipe“, wahrscheinlich weil der Server Verbindungen schließt, die zu lange inaktiv sind. Als ich mich erneut beim Server anmeldete, wurde kein Job angezeigt, als ich den Befehl „Jobs“ eingebe. Wie kann ich das Programm dort neu starten, wo es aufgehört hat, anstatt es von Anfang an auszuführen?

Antwort1

Es hängt davon ab, wo Sie diese Nachricht gesehen haben. Wenn Sie sich per SSH mit dem Server verbinden und dies auf Ihrem lokalen Terminal sehen, ist alles in Ordnung. Der Prozess läuft wahrscheinlich noch immer problemlos auf dem Remote-Server. Sie werden es nicht sehen, jobsda jobsnur Prozesse angezeigt werden, die in der aktuellen Shell-Sitzung ausgeführt werden. Wenn Sie sich erneut mit dem Server verbunden haben, haben Sie eine neue Sitzung gestartet, was jobsnicht hilft. Versuchen Sie, es auszuführen, ps aux | grep ProcessNameum zu prüfen, ob es noch ausgeführt wird.

Wenn Sie diese Meldung in nohup.outoder in Ihrer Ausgabedatei gesehen haben, können Sie das nicht. Es sei denn, es handelt sich um einen Prozess, der irgendwie die Fortsetzung unterstützt. Der Fehler bedeutet, dass der Prozess gestoppt wurde. Da er gestoppt wurde, ist er weg, es gibt keine Möglichkeit, ihn wiederherzustellen.

Wenn dies beispielsweise das Lesen einer Eingabedatei und die Ausgabe war, könnten Sie versuchen, herauszufinden, wann es gestoppt wurde, und es erneut ausführen und dabei nur die verbleibenden Zeilen als Eingabe verwenden. Es gibt jedoch keinen Trick, mit dem man es auf magische Weise neu starten kann, da es keine Aufzeichnung darüber gibt, wann es gestoppt wurde.

verwandte Informationen