Tote Prozesse (telnet)

P

placebo

Mitglied
Hallo zusammen,

bei uns läuft das so:

der Kunde wählt sich per Telnet (fortschrittlich, ich weiß) auf die Machine ein und führt ein C Programm aus mit dem er arbeitet.

Jetzt kann es passieren, dass das Telnet Fenster einfach geschlossen wird anstatt sich selbst zu beenden oder die Netzwerk Verbindung abbricht und das C Programm Amok läuft - das heißt es merkt nicht dass das pts Terminal tot ist und verbraucht 100% CPU Last ...
Wie kann ein Programm wenn das Terminal tot ist weiterlaufen?

Die einfachste Lösung wäre wahrscheinlich das in das C Programm einzubauen ... geht aber nicht, weil dazu kein Entwickler und keine Sourcen vorhanden sind.
Deshalb muss ich das von Systemseite abfangen.
Im Moment lasse ich alle 5 Minuten ein Script laufen das mit lsof nach "deleted pts" sucht und diese killt - das ist aber auch nicht das optimale ...

Habt ihr Ideen wie man dies unterbinden könnte?
Wenn ihr es nicht wisst, dann gehts nicht ;)

System:
SuSE SLES9 SP4
Kernel 2.6.5-7.308-smp
 
Lass das Programm im 'screen' laufen. Dann kann es beim Schliessen der Verbindung einfach weiter laufen und nach einem erneuten Login kann man es mittels 'screen -R -d' wieder "zurückholen".
 
Hey,
gute Idee!
Du meinst in die /etc/passwd als Shell gleich Screen eingeben?

Leider sind die User nicht in der Lage den Befehl auszuführen um die Session zurück zu holen und wollen das auch nicht ...
Gibt es noch eine Möglichkeit das alle Prozesse wenn das Terminal geschlossen werden einfach gekillt werden?
 
Ich würde eher ein Alias verwenden. Screen kann nicht als Loginshell verwendet werden, da es keine Prozessverwaltung unterstützt und auf eine richtige Shell angewiesen ist. Ggf. machst du anstatt dem Programmaufruf ein Skript, das entsprechend 'screen -R -d' ausführt, wenn ein entsprechender Prozess schon läuft.
 
Ich könnte heulen dass ich es nicht so machen kann ...

Die User haben alle den gleichen Usernamen ohne Passwort (fortschrittlich, ich weiß) ... das Rechte Management macht dann das C Programm.
So wäre es fatal wenn jemand die Session eines anderen verwenden würde ...
 
Zurück
Oben