Was sind mögliche negative Folgen einer Unterbrechung eines Prozesses mit control-z in bash?

11

Mit bash kann man einen Prozess mit anhalten control-z. Gibt es jedoch allgemeine Umstände oder Richtlinien, vor denen Sie sich hüten sollten, wenn sich ein Prozess beim Anhalten nicht gut verhält?

Mein spezielles Szenario bestand darin, eine TAR-Datei zu erstellen, die länger als erwartet dauerte. Ich wollte es anhalten, um es in den Hintergrund zu stellen, entschied mich aber dagegen. Meine Frage ist natürlich nicht spezifisch für Teer. Ich hoffe eher, dass ich die Pausenfunktion in Bash ein bisschen besser verstehen kann und auch, was dazu führen würde, dass ein Prozess schlecht auf Pausen reagiert.

Wesley
quelle

Antworten:

3

Speicheraufgaben (pvmove, veritas vx-Whatever), die auf atomaren Kopien beruhen. Es ist nicht gut, wenn sie außerhalb ihrer Kontrolle stecken bleiben. Es hängt davon ab, ob die Aufgabe nur eine API auslöst und den Rest aus dem Kernelspeicher erledigt. Dann ist es sicher. Wenn es in diesem * Prozess * in Ihrer Shell passiert , dann gehen Sie wirklich mit dem Bildschirm und lassen Sie die Hände weg.

Empfehlen Sie auf jeden Fall, sie nicht im Hintergrund anzuhalten. Befehle, die Puffer wie dd verwenden, scheinen mit Ausnahme der oben genannten Bandlaufwerke besser dran zu sein.

(Ich habe einmal einen zusätzlichen Neustart, weniger Schlaf und viel Paranoia gewonnen, als mir das passiert ist, als ich das Chaos anderer Leute beseitigt habe. Offensichtlich: Versuchen Sie nicht, Verknüpfungen zu verwenden, wenn Sie Verknüpfungen anderer Leute reparieren ...)

Florian Heigl
quelle
6

Wenn Ihr Prozess Daten schreibt, beachten Sie, dass Timing-Probleme mit Geräten und Puffern mit wahlfreiem Zugriff problematisch sein können. Ich habe gesehen, dass Bandlaufwerke manchmal Probleme damit haben.

Magellan
quelle
Netzwerk- / Firewall-Sitzungen können eine Zeitüberschreitung aufweisen und nicht neu gestartet werden, da TCP-SYN nicht erneut gesendet wird.
Jippie
Der TCP-Stack würde weiterhin ACKs senden, dass das Fenster voll ist, oder?
Magellan
Keep Alive-Pakete sind weder Teil des TCP noch des IP-Protokolls, bestenfalls Teil der Anwendung. Daher kann es vorkommen, dass eine Firewall oder ein Remoteclient oder -server auf ein Paket wartet und den Socket / die Verbindung trennt.
Jippie
Da es sich nicht um Keepalives handelt, handelt es sich offensichtlich um Anwendungsebenen. Ich spreche von ACKs für das TCP-Schiebefenster auf Transportebene.
Magellan
2

Und das alltägliche Szenario: Strg-Z drücken, dann vergessen und abmelden und den Prozess verlieren! =)

gfountis
quelle
0

Keine konkrete Antwort auf die Frage, aber alternativ können Sie versuchen, gleichzeitige Jobs mit auszuführen screen. Sie können die Shell also gleichzeitig mit einem anderen Programm verwenden.

jhtong
quelle
Ja, Bildschirm ist immer ein guter Weg. Ich bin mir jedoch nicht sicher, wie ich auf Ihren Namen reagieren soll.
Wesley
@toiletfreak Wie ist der Bildschirm eine Alternative zum Anhalten? Bildschirm führt einen Job im Hintergrund aus, oder? Aber es geht weiter, wenn Sie den Bildschirm abnehmen ...
Bernhard