
Weil jemand im IRC das Problem gerade hatte:
Screen hat in /tmp/screens ja seinen Socket liegen. Wenn man mal im Aufräumwahn den mit löscht, kann man den screen nicht mehr re-attachen, und kommt somit an die ganzen schönen Programme nicht mehr ran :-/
Die Lösung ist ganz einfach, denn die Autoren von screen haben das Problem wohl auch schon mal gehabt…
Einfach ein , und schon legt er den Socket wieder an.kill -CHLD <pid>
Wie? Screen läuft ja suid root, und du darfst das garnicht? Nun, wir besinnen uns kurz, was ein sigCHLD eigentlich ist:
ice:~>grep SIGCHLD /usr/include/sys/signal.h
#define SIGCHLD 20 /* to parent on child stop or exit */
Also 'einfach' ein beliebiges Kind des screens töten, und schon bekommt der screen vom System ein sigCHLD.
Eine Shell wird also geopfert um die anderen zu retten. Heroisch, nicht?
– Sec
Qbi's Weblog wrote on Mon, 27 Feb 2006 22:48