• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Prozess von aber NICHT IN Konsole starten

Hallo!

Angenommen ich verbinde mich über ssh auf einen PC und starte dort einen Prozess, dann wird dieser beim Beendern der ssh-verbindung ebenfalls beedent.
Wie kann ich einen Prozess starten der auch nach Beenden der SSH-Session auf dem Server weiterläuft?

Gruß Tobias
 
Was ist screen? Ich werd gleich mal "man screen" befragen...

Wie stehts mit nohup? Ich kann mich an einen Befehl erinnern, mit dem man aus der Konsole ein Programm starten kann, und an dieser Konsole danach weiter arbeiten kann. Wie das genau ging (ob das wirklich nohup war?) habe ich leider vergessen... manchmal funktioniert das, und manchmal gibt es irgendwie umgeleiteten Output. Das scheint von Shell zu Shell anders zu sein.

Erinnert sich wer? Details? :?:

MfG
 
nohup klappt nicht, weil sshd noch auf dessen Termination wartet, weil nohup sich (so bei meinem letzten Versuch vor einigen Jahren) nicht korrekt von der Prozessgruppe abtrennt.
Erwarte ich aber auch nicht, denn nohup macht nur das, was es sagt: kein SIGHUP durchlassen.
 
Du hast recht. Es sieht fast so aus... ob das mit sshd in der Konstellation zutreffend ist kann i ned sagen.
Auf meinem System geht das auch nicht. Ich kann mich aber an einen Versuch erinnern, bei dem sich das getrennt hat. I werd nochmal nachforschen, aber erst wenn ich ausgeschlafen bin... :lol:

EDIT: So ist das...
Erwarte ich aber auch nicht, denn nohup macht nur das, was es sagt: kein SIGHUP durchlassen.
Stimmt nicht. Es sind diese: SIGHUP SIGINT SIGQUIT und SIGTERM

Und ich kann mich auch wieder an den Versuch erinnern... :idea: versuche folgendes:
Starte etwas beliebiges aus dem Terminal und beende das Terminal. Es wird beides gekillt.
Starte das gleiche mit nohup. Beende das Terminal. Was immer du gestartet hast... ist immer noch da!

MfG
 
jengelh schrieb:
nohup klappt nicht, weil sshd noch auf dessen Termination wartet, weil nohup sich (so bei meinem letzten Versuch vor einigen Jahren) nicht korrekt von der Prozessgruppe abtrennt.
Erwarte ich aber auch nicht, denn nohup macht nur das, was es sagt: kein SIGHUP durchlassen.

Die meisten (Konsolen-) Programme reagieren recht allergisch dagegen, wenn man ihnen STDIN, STDOUT oder STDERR unterm Hintern wegzieht und beenden sich beleidigt. Um sie im Glauben zu lassen, dass ihnen noch jemand zuhört, kann man aber die entsprechenden Kanäle umlenken, z. B. nach /dev/null. Außerdem sollte man den Prozess auch im Hintergrund starten, sonst beendet er sich logischerweise immer, wenn sein Parentprozess stirbt. Also könnt ihr mal folgendes ausprobieren:

$ ssh localhost
$ nohup bash -c 'sleep 1000' >/dev/null 2>&1 </dev/null &
$ ^D
$ ps -ef
...
asem 9515 1 0 16:15 ? 00:00:00 sleep 1000
...

Wie man sieht, lebt der Prozess noch und ist auch noch Prozessleader (PPID=1). Die aufrufenden Shell und der sshd sind dagegen verschwunden. QED

-- asem
 
Hallo nochmal,

die Sache mit screen läuft ja ansich wunderbar.
Nun würde ich jedoch gerne über ssh auf den screen von einem anderen user zugreifen. Laut man-page sollte das ja mit "screen -r username/screenname" gehn. Versuche ich dies, kommt die Meldung: "Must run suid for multiuser support.

Was muss ich tun damit das funzt?


//EDIT:
is zwar hier eher offtopic aber würde mir bei dem problem auch weiterhelfen:
Kann man wenn man sich als "User A"über ssh auf einen rechner verbindet irgenwie auf "user-B" (der keine ssh-rechte hat) wechseln? (also etwa so wie man mit "su" auf root wechselt)
 

towo

Moderator
Teammitglied
//EDIT:
is zwar hier eher offtopic aber würde mir bei dem problem auch weiterhelfen:
Kann man wenn man sich als "User A"über ssh auf einen rechner verbindet irgenwie auf "user-B" (der keine ssh-rechte hat) wechseln? (also etwa so wie man mit "su" auf root wechselt)
Code:
su user-B
 
Wenn ich mich als user-B per ssh verbinde komme ich in den screen rein.
Wenn ich mich aber als user-A verbinde und dann mit "su user-B" den user wechsel, kommt wenn ich screen -r "screenname" aufrufe: "Cannot open your terminal /dev/pts/0 - please check."

Hat da jemand ne Erklärung für?
 
ich hatte mir das mit den rechten schon angesehn aber konnte kein problem drin sehn...

jetzt hab ichs aber gefunden:
/dev/pts/0 bekommt immer den user als owner der sich per ssh verbindet.
--> wenn ich mich mit user-A verbinde und dann mit "su" auf User-B wechsel hat das device immer noch den user A als owner... --> dementsprechend kann user B nicht drauf zugreifen...

kann man das irgendwie sinnvoll lösen?
 
Oben