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.

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 ...)


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.


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! =)


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.