Wie kann ich SRM Linux stoppen?

556
User9532

Ich verwende SRM, um eine Datei zu löschen. Srm arbeitet bereits 12 Stunden zum Löschen einer 7 GB-Datei und hat nur 3 Sterne. ***

Gibt es eine Möglichkeit, es anzuhalten oder anzuhalten, so mache ich das an einem anderen Tag.

0
`srm` führt standardmäßig 38 Durchläufe durch, schreibt also 228 GB, um die Datei zu löschen. Die Datei wurde bereits mehrmals überschrieben. Sie können es einfach kontrollieren und später einen weniger sicheren Durchlauf machen - in der Akkumulation kann es sich um dasselbe handeln. Paul vor 6 Jahren 0
Vielen Dank. Wie kann ich die Geschwindigkeit des Überschreibens und die ungefähre Zeit überprüfen? User9532 vor 6 Jahren 0
Sie können jedes Programm anhalten, indem Sie ein STOP-Signal senden (dies bedeutet nicht das Beenden), und mit einem CONT-Signal fortfahren. Sie können dies mit den Kill-Optionen oder über den Task-Monitor tun. Der angehaltene Status wird nach einem Neustart nicht fortgesetzt, der Ruhezustand oder der Ruhezustand ist jedoch ausreichend. AFH vor 6 Jahren 1

2 Antworten auf die Frage

0
kostix

Ein Absturzkurs, um Befehlszeilen- / Textmodusprogramme zu beenden

Um den Kommentar von @ AFH näher zu erläutern: Wenn "SRM" ein Konsolenprogramm (Befehlszeilenschnittstelle) ist und Sie es von einem Terminal aus ausgeführt haben, klicken Sie einfach darauf Ctrl-z, da das Terminal den Vordergrundprozess sendet, der dieses SIGSTOPSignal verwaltet und sendet in den hintergrund. Sie können es dann durch Ausführen des fgShellbefehls "zurückbringen" - es ist Teil der sogenannten "Jobsteuerung", die durch interaktive Shells implementiert wird, und bedeutet, den Hintergrundprozess in den Vordergrund zu rücken (daher "fg"). Dazu gehört auch das Senden des Prozesses SIGCONTSignal unter anderem.

Natürlich, um einen Prozess einfach zu stoppen, stoppen Sie ihn. Auf Unix-y-Systemen, einschließlich Linux-basierter Betriebssysteme, wird dies durch Senden eines der speziellen Signale des Prozesses gesendet - normalerweise SIGTERModer SIGINT. Wenn Sie Ctrl-cauf ein Terminal treffen, das einen Prozess ausführt, wird das SIGINTSignal gesendet. Das killProgramm kann verwendet werden, um willkürliche Prozesse beliebige Signale zu senden.

Das Problem bei der Verwendung killist, dass der Benutzer für die meisten seiner Verwendungszwecke die sogenannte "PID" des Prozesses kennen muss, an den das Signal gesendet werden soll. PID ist eine P rocess ID entifier-ein ganze Zahl ≥ 1 einzigartig über alle Prozesse, die gegenwärtig vom Betriebssystem verwaltet.

Die Jobsteuerung der Shell macht es einfacher, da sie über bestimmte Mnemonics verfügt, um auf die verwalteten Prozesse zu verweisen: Wenn Sie den aktuell aktiven Prozess durch Anklicken im Hintergrund ausführen Ctrl-z, können Sie mit dem jobsBefehl die Liste der von dieser Shell verwalteten Prozesse anzeigen. Zum Beispiel habe ich gerade eine Instanz angehalten mutt und jobsdanach ausgeführt; hier ist was ich sehe:

~$ jobs [1]+ Stopped mutt 

Beachten Sie dieses [1]+bisschen. Dies 1ist die Jobkennung, die diesem Prozess von der Shell zugewiesen wurde. Das +ist ein "Handle", um auf den letzten Hintergrundprozess zu verweisen.

Sie können also entweder %1oder %+mit dem killBefehl verwenden, um auf diesen Prozess zu verweisen, wie in

$ kill %1 

oder

$ kill %+ 

… Und sie werden alle SIGTERMzu diesem einzigen Hintergrundprozess senden .

So können Sie ein schlecht funktionierendes Konsolenprogramm beenden.

Mehr zu Singals

Beachten Sie, dass diese SIGINTund SIGTERMSignale von dem Prozess "behandelt" werden können, von dem einer von ihnen empfangen wurde. Dadurch kann der Prozess vor dem Beenden bestimmte Bereinigungsaktionen durchführen.

Manchmal kann ein Prozess jedoch "hängen" - beispielsweise durch Ausführen einer Endlosschleife auf einer CPU aufgrund eines Programmierfehlers oder durch Stoppen, indem versucht wird, eine Datei auf einer "toten" Ressource zu lesen oder zu schreiben, z. B. eine getrennte Netzwerkfreigabe. In diesen Fällen kann SIGINToder SIGTERMkann der Prozess normalerweise nicht "abgewickelt" werden.

Für solche Fälle gibt es ein spezielles Signal, SIGQUITdem eine bekannte Nummer "9" zugewiesen ist. Durch Senden eines Prozesses wird dieses Signal lediglich dazu gezwungen, den Prozess zwangsweise abzubremsen, ohne dass er eingreifen kann. Deshalb haben Sie diese kill -9 $pidEncantation höchstwahrscheinlich in einigen Dokumenten gesehen.

Andere Optionen

Natürlich gibt es auch andere Möglichkeiten.

Erstens gibt es "benutzerfreundliche" Programme, htopdie Ihnen eine durchsuchbare Liste der laufenden Prozesse bieten und es Ihnen ermöglichen, jedem von ihnen ein beliebiges Programm zu senden.

Grafische Desktop-Umgebungen wie GNOME, XFCE, KDE und andere bieten normalerweise eine GUI-App, die das Gleiche tut.

Zweitens gibt es mehr "hackige" Wege, um mit fehlerbehafteten Prozessen umzugehen, wenn diese "Task-Manager" nicht verfügbar sind oder aus irgendeinem Grund nicht der Rechnung entsprechen. Hier sind einige davon in keiner bestimmten Reihenfolge:

  • Das xkillDienstprogramm (bei Debian und seiner Ableitung befindet sich im x11-utilsPaket) zeigt bei der Ausführung einen diagonalen, kreuzförmigen Cursor, mit dem Sie ein beliebiges Fenster durch Klicken auswählen und xkillden Prozess, der dieses Fenster besitzt, zwangsweise von dem Programm trennen X-Server (das Programm, das alle Ihre GUI darstellt).

    Die Wirkung dieser Aktion unterscheidet sich zwischen den Prozessen. Wenn Sie jedoch xkillein Terminalfenster verwenden, sendet es das SIGHUPSignal an die von ihm verwalteten Prozesse, und dies führt normalerweise zum Abbruch.

  • Das pkillDienstprogramm (auf Debian und seiner Ableitung befindet sich im procpsPaket) kann verwendet werden, um ein Signal an eine Reihe von Prozessen zu senden, deren Name mit einer bestimmten Zeichenfolge übereinstimmt.

    Wenn Sie einen srmProzess beenden möchten, von dem Sie wissen, dass er auf Ihrem System ausgeführt wird, können Sie ihn ausführen

     $ pkill -9 srm 

um alle srmauf dem System laufenden Prozesse herunterzufahren .

-1
xenoid

Die wirkliche Antwort ist hier

TL; DR mit modernen Festplatten (und dazu gehört alles, was eine 7 GB-Datei aufnehmen kann), Sie müssen nicht wirklich so paranoid sein.

Da Sie Ihre Datei nur noch mit Nullen überschreiben müssen:

shred -n 0 -z trashed.dat 
  • wo -n 0bedeutet 0 Durchläufe mit zufälligen Daten (ohne dass Sie die Standard 3 Durchläufe mit zufälligen Daten erhalten, aber das ist immer noch übertrieben)
  • -z ein letzter Durchgang mit Nullen (der einzige, der benötigt wird)

Um das sichere Löschen effizient zu beenden,

  1. Stoppen Sie den aktuellen Befehl
  2. Führen Sie den shredobigen Befehl aus

( Abstützung für plötzlichen Kharma-Drop ... )

Die Frage war nicht "ist das nötig", sondern "wie kann ich pausieren". Dies ist also keine Antwort auf die gestellte Frage. Paul vor 6 Jahren 0
Ja, so ist es. Antworten Sie auf den X-Teil eines XY-Problems ... Stoppen Sie es und verwenden Sie etwas anderes, das viel schneller ausgeführt wird. xenoid vor 6 Jahren 0
Dies und eine Lösung wäre eine Antwort auf die Frage, ist dies nicht. Bitte [bearbeiten] und Details angeben. Paul vor 6 Jahren 0