Manchmal passiert es: Die SSH session bricht ab, sei es aufgrund längerer Inaktivität, oder Verbindungsunterbruch. Vor allem, wenn man wichtige Kommandos eingegeben hatte, möchte man diese zwecks Rückverfolgung in der history behalten. – Dies ist bei einem Session-Unterbruch normalerweise nicht der Fall, da die bash-history immer erst beim logout geschrieben wird.
Oder man hat z.B. eine Datei mit vim geöffnet und möchte diese nach dem neu verbinden weiter bearbeiten.
Inhalt
Bash-History retten
Da aber bei einem Verbindungsabbruch der bash-Prozess noch läuft, reicht es sich nochmals im System einzuloggen, danach mit
ps -ef
herauszufinden welcher der letzte bash Prozess es war (normalerweise die zweitletzte pts/x Nummer) und dessen PID mit dem HUP-Signal zu killen:
kill -1 $PID
Nun wird der Bash Prozess ordentlich beendet und die history ins file: „~/.bash_history“ geschrieben.
Offene vim session
War man vor dem Verbindungsabbruch z.B. gerade eine Datei mit vim am bearbeiten reicht es nicht, wenn man den vim Prozess abschiesst und man würde gerne einfach die vim session wieder öffnen.
Dies geht mit dem Tool reptyr das eine laufendes Programm einem neuen Terminal zuordnet.
Mittels pidof vim
oder ps aux | grep vim
findet man die entpsrechende PID heraus und übergibt diese dann an reptyr:
reptyr 12345
[stextbox id=“note“ caption=“Fehlermeldung: Unable to attach to pid 12345: Operation not permitted“]
Sollte man die Fehlermeldung:
Unable to attach to pid 12345: Operation not permitted |
bekommen, so liegt das am ptrace scope welcher auf 0 (anstelle von 1) gesetzt werden sollte:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope |
[/stextbox]