Archiv der Kategorie: QuickTipp

QuickTipp: Kommandos im Hintergrund starten mit nohup

Programme, die innerhalb einer Shell – z. B. /bin/bash – gestartet werden warten, normalerweise, auf das Ende ihrer Ausführung und belegen in der Zeit die Konsole.

Einfach lässt sich dies durch das Kommando sleep darstellen:

tux@linux ~ $ sleep 10

Erst 10 Sekunden nach dem Start des Kommandos erscheint ein neuer Prompt und es werden neue Kommandos ausgeführt. Zwar kann man während das Kommando sleep die Konsole belegt schon neue Kommandos eingeben, aber die eigentliche Ausführung startet erst nach Ende des vorherigen Kommandos.

Was passiert nun, wenn das Kommando in eine Shell eingegeben wurde, die über SSH oder ein Fenster unter der graphischen Oberfläche aufgerufen wurde und die Verbindung oder das Fenster geschlossen werden?

Die Definition ist hier recht einfach: Wird einem Prozess der Ausgabekanal an den er gebunden ist entzogen – durch einen Verbindungsabbruch oder Schließen des Fensters – so wird der Prozess beendet.

Um dies zu Verbindern können Prozesse schon beim Start von den Ein- und Ausgabekanälen abgekoppelt und damit vor einem Abbruch durch Verbindungsverlust zum Ausgabekanal geschützt werden.

Dies kann über das Kommando nohup geschehen, der den Ein- und Ausgabekanal des angegebenen Kommandos umleitet. Der Eingabekanal wird hierbei geschlossen und der Ausgabekanal in die Datei nohup.out umgeleitet.

tux@linux ~ $ nohup sleep 10
nohup: ignoriere Eingabe und hänge Ausgabe an 'nohup.out' an

Das Kommando belegt aber weiterhin die Konsole und die neue Eingabeaufforderung erscheint erst nach Ende des Kommandos.

Um das Kommando zusätlich noch im Hintergrund zu starten nutzt man das Job-Management der Shell und fügt an das Kommando den Parameter & an. Dieser fordert die Shell auf das Kommando im Hintergrund laufen zu lassen und nicht die Konsole bis zum Ende der Ausführung zu belegen. Das Kommando wird hierfür in einem Unterprozess der aktuellen Shell gestartet.

tux@linux ~ $ nohup sleep 10 &
[1] 16131
nohup: ignoriere Eingabe und hänge Ausgabe an 'nohup.out' an
tux@linux ~ $

Über die Kommandos jobs, fg und bg sowie der Tastenkombination STRG+z kann mit dem im Hintergrund laufenden Job gearbeitet werden.

Zusätzlich macht es Sinn sich die Kommandos screen und/oder tmux anzuschauen, die es dem Anwender ermöglichen eine Shell auch nach einem Verbindungsverlust weiterzuführen.

QuickTipp: System neustarten ohne init / systemd

Nach einem Ausfall der Festplatte auf einem Server kann es vorkommen, dass die normalen Wege einen Neustart durchzuführen nicht mehr funktionieren.

# reboot
bash: /sbin/reboot: Input/output error
# shutdown -r now
bash: /sbin/shutdown: Input/output error
# init 6
bash: /sbin/init: Input/output error

Das Problem mit der Festplatte verhindert das Laden der Befehle und macht sie somit unnutzbar. QuickTipp: System neustarten ohne init / systemd weiterlesen

QuickTipp: Partitionstabellen mit sgdisk klonen

Egal ob bei dem ersten Aufsetzen oder bei einem späteren Erweitern eines Software Raids unter Linux, es muss immer auf zusammengehörenden Festplatten die gleichen Daten in die Partitionstabelle eingetragen sein. Die meisten Administratoren lösen das Problem mittels eines manuellen Aufrufs und lassen sich zunächst die alte Partitionstabelle ausgeben und tragen die Daten dann auf der neuen Festplatte ein.

QuickTipp: Partitionstabellen mit sgdisk klonen weiterlesen

QuickTipp: OpenSSL – Gehören Zertifikat und Key zusammen?

Im täglichen Einsatz kann es immer mal wieder vorkommen, dass Dateien oder Daten an sich durcheinander gewürfelt sind. Passiert dies bei Zertifikat-Schlüsseln oder -Zertifikaten ist dies besonders schlimm, da sie dann nicht mehr eingesetzt werden können.

Der erste Test, der durchgeführt werden kann ist der der Test auf einen gemeinsamen Modulus. Dieser Wert kann mit dem Programm openssl aus dem Schlüssel und Zertifikat entnommen werden.
QuickTipp: OpenSSL – Gehören Zertifikat und Key zusammen? weiterlesen

QuickTipp: OpenSSL – Erstellen von Zertifikaten aus bestehenden Zertifikaten

Im Zusammenhang mit dem Heartbleed Bug in OpenSSL müssen die Privaten Schlüssel und Zertifikate der Server ausgetauscht werden, da es durch eine geschickte Nutzung des Bugs möglich ist den Privaten Schlüssel auszulesen und zur Entschlüsselung der per https
übertragenen Daten genutzt werden.

QuickTipp: OpenSSL – Erstellen von Zertifikaten aus bestehenden Zertifikaten weiterlesen