server benutzer soll programm starten aber nicht beenden

traster

traster

Routinier
hallo zusammen
habe mir eine server gemietet auf dem läuft debian linux
wenn ich mich nun per ssh mit dem server verbinde und ein programm starte läuft es alles auch bestens ! nur wenn ich jetzt den ssh clint beende also mich als user vom server trenne läuft das programm auch nicht meher
das programm was ich dort ausführe ist eine server-bin datei das heisst sie sollte permanet laufen auch wenn ich mich auslogge
wie kann man das realisieren ?
den befehl screen gibt es nicht
es müsste doch möglich sein das ich mich per ssh einlogge
dann als anderer benutzer auf dem system einlogge das prg starte
und dann wieder zurück zum ssh user gelange und mich mit dem auslogge
so das der user der das programm gestrtet hat noch eingeloggt ist und der prozess noch läuft

oderso

mfg traster
 
mit nohup kanst du einen prozess vom parentprozess lösen
nohup <programm>
 
danke für die schnelle antwort
hat irgendwie nicht so geklappt
aber durch diesen befehl bin ich beim lesen auf ein andere option gekommen
und zwar macht man nach der befehlsangame einfach ein & zeichen dahinter
und schon wird der prozess nach hinten verlegt
also es sieht so aus als wenn es geht
habe ich recht oder nicht ?
mfg traster
 
Ja, dann läuft der Befehl im Hintergrund.
Wenn ich von der Konsole aus meinen Browser starte, tippe ich auch opera & ein. Sonst wäre die Konsole während der Laufzeit vom Opera "tot".
Aber warum gibt es da kein screen?!?!
Hast du Adminrechte?? Wenn ja, dann mach dringend mal ein
Code:
apt-get install screen
.
screen startet den screen.
mit STRG+A+D detatched du den screen und mit screen -r holst du den wieder her.

Dann kannste auch mal apt-get update; apt-get upgrade -y in nem Screen laufen lassen!
Ich könnte ohne screen nicht mehr gescheit arbeiten!
 
nohup klappt nicht gibt er irgendeinen fehler aus?

Usage: /usr/bin/nohup COMMAND [ARG]...
or: /usr/bin/nohup OPTION
Run COMMAND, ignoring hangup signals.

--help display this help and exit
--version output version information and exit

Report bugs to <bug-coreutils@gnu.org>.

also wenn ich meinen browser über nohup starte kann ich das terminal einfach schließen und der prozess leuft weiter
 
apt-get install screen wenn ich das ausführe hab ich auch den befehl screen !
hab ich jetzt das programm screen auf dem server installiert/freigeschaltet ?

zu nohup
wollte das programm ===> cd home [return] cd traster [return] cd aao [return] cd System [return] ./server.bin lan map.aao -nohomedir -INI=server.ini [return] starten
habe es nun so gestartet ===> cd home [return] cd traster [return] cd aao [return] cd System [return] ./server.bin lan map.aao -nohomedir -INI=server.ini & [return]

jetzt meine frage wie ist der die genaue befehlszeile für den nohup

so wie ich es gemacht habe logg ich mich einfach wieder aus
dann log ich mich wieder an und rufe ps -u traster auf bekomme folgende ausgabe :
PID TTY TIME CMD
21450 ? 00:00:01 server_linux
21451 ? 00:00:00 server_linux
21452 ? 00:00:10 server_linux
21453 ? 00:00:18 server_linux
21454 ? 00:00:31 server_linux
21455 ? 00:00:00 server_linux
21456 ? 00:00:00 server_linux
21457 ? 00:00:00 server_linux
21458 ? 00:00:00 server_linux
26077 ? 00:00:11 server-bin
26078 ? 00:00:00 server-bin
26079 ? 00:00:00 server-bin
13247 pts/9 00:00:00 bash
14525 ? 00:00:00 sshd
14526 pts/5 00:00:00 bash
14586 pts/5 00:00:00 ps

und wie ihr seht läuft das prg server-bin auch wenn ich einfach meine ssh clint beendet habe

so ist das der richtige weg oder nicht ?
danke erstmal für die bemühungen von euch !
mfg traster

p.s. das prg server_linux brauchte ich einfach nur mit sh aufrufen und es leif und ich kam in die shell von ganz allein zurück ?
scheint so als wenn das schon ein script ist was das programm schon alleine in den hintergrund stellt
 
Zuletzt bearbeitet:
kleines Screenmanual

Ähm.. erstmal nein.

Ja, jetzt hast du screen. Mit dem nohup kenn ich mich nicht so genau aus, aber zu screen kann ich dir helfen.

Code:
du@daheim: $ ssh debianserver
... (passwort)
du@debianserver: $ su
... (passwort)
root@debianserver: # screen
... (text)
root@debianserver: # apt-get update; apt-get upgrade -y // oder dies, oder das
STRG+A+D
[detached]
root@debianserver: # screen -r // atached den Screen wieder
(Ausgabe von apt-get)
STRG+A+D
root@debainserver: #
STRG+D
du@debianserver: $
STRG+D
du@daheim: $
Nach einer halben Stunde 'ssh'st du dich wieder, wirst zum root und machst screen -r!
Et voila, du kannst sehen wie apt-get schön gearbeitet hat..
oder genau dort weiter machen, wo du den screen detachted hast.
Geht natürlich auch, wenn du "nur" ein Normaleruser bist.

Ich hoffe das hilft dir ein bisschen.
Sollstest du mehrere screens laufen lassen meckert er bei screen -r da er nicht weiß welchen er attachen soll.
screen -rl listet dir alle auf. Ein screen -r pid holt den richtigen her.

Screens lassen sich auch schachteln. Und innerhalb von screens kannst du auch eine neue Konsole aufmachen**...
Und am Ende weißt du nicht mehr wo du bist!

**SINN:
Einmal per ssh eingeloggt -> eine Shell
Einmal per ssh eingeloggt + screen mit 3 virtuellen Konsolen -> drei Shells auf dem Server!

Geht mir STG+A+C (create)
Mit STRG+[0-9] kannst du dann die Fenster durchgehen!
Und mit STRG+D die einfach ganz bequem abschießen!

Solltest du einmal echt nimmer wissen wo du bist: Einfach solange STRG+D drücken, bis du dich an der lokalen Maschine ausgeloggt hast.. Dann weißt du wieder Bescheid!

Mittels STRG+A+X kannst du den Screen auch sperren!
 
hallo hehejo
so vielen dank
du hast mich schon wieder neugierig gemacht auf sachen die ich gar nicht so genau wissen wollte
also diesen befehel ===> apt-get install screen [return] hab ich als root ausgeführt danach hatte ich auch den befehl screen zu verfügung !
jetzt nochmal vorweg HABE ICH ES DAMIT INSTALLIERT AUF DEM SERVER (a) ODER HAB ICH ES FREIGESCHALTET AUF DEM SERVER (b) ?????
mein befehls zeile lautet ALS USER ./server.bin lan aao.map -nohomedir -INI=server.ini [return]
warum muss ich dann screen als root starten ?
und warum ist es so wie ich es jetzt habe nicht so richtig ?
das programm/ der dienst server.bin läuft doch jetzt im hintergrund permanent
und hat auch eine eigene PID nummer
um die server.bin zu schliessen gebe ich einfach kill PID [return] ein und ich schliesse es
es ist jetzt nicht böse gemeint aber das mit dem screen befehl kommt mir irgendwie so aufwendig vor obwohl ich schreiben muss das es so auch in der anleitung zum starten des servers stand !
mfg traster
 
das problem ist nur das sobald du dich ausloggst server.bin ein signal bekommt das es seine tätigkeit ausgeben soll
mit nohup sagt man ihm das er das ignorieren soll und vom parent prozess losgelößtsein soll
nuhup ./server.bin lan aao.map -nohomedir -INI=server.ini
du hast screen installiert
 
bei nohup ./server-bin lan AAA.map -nohomedir - INI=server.ini passiert nur diese
nohup: appending output to `nohup.out'
und nichts wird gestartet :-(
was kann das jetzt wieder sein ?
mfg traster

edit:
nochmal zu hehejo
der befehl sieht jetzt bei mir so aus
screen -S aaoserver ./server-bin lan AAO.map -nohomedir -INI=server.ini
und mit STRG + A dann A loslassen und D drücken komm ich wieder auf konsole !
 
Zuletzt bearbeitet:
guck mal mit "top" nach die ausgabe wird ja umgeleitet dh du siehst nixdavon
 
unter top sehe ich das :
9290 traster 18 0 932 932 748 R 0.1 0.0 0:00 top
1 root 8 0 476 444 420 S 0.0 0.0 0:04 init
14169 root 9 0 584 444 384 S 0.0 0.0 0:00 sshd
14972 root 9 0 964 796 792 S 0.0 0.0 0:00 safe_mysqld
15007 mysql 13 5 3520 752 732 S N 0.0 0.0 0:00 mysqld
15009 mysql 13 5 3520 752 732 S N 0.0 0.0 0:00 mysqld
15010 mysql 13 5 3520 752 732 S N 0.0 0.0 0:00 mysqld
15011 mysql 13 5 3520 752 732 S N 0.0 0.0 0:00 mysqld
15197 root 9 0 840 524 508 S 0.0 0.0 0:00 apache
15201 www-data 9 0 1240 1008 1008 S 0.0 0.0 0:00 apache
15202 www-data 9 0 1236 1008 1008 S 0.0 0.0 0:00 apache
15203 www-data 9 0 1260 1172 1040 S 0.0 0.1 0:00 apache
15204 www-data 9 0 1260 1156 1020 S 0.0 0.1 0:00 apache
15205 www-data 9 0 1224 1116 1000 S 0.0 0.1 0:00 apache
5971 www-data 9 0 1260 1176 1100 S 0.0 0.1 0:00 apache
5972 www-data 9 0 1232 1144 1088 S 0.0 0.1 0:00 apache
21450 traster 19 19 2020 1984 1368 S N 0.0 0.1 0:01 server_linux

wobei pid 21450 nichts damit zu tun hat weil es ein anderes prg ist
unter ps -u traster sehe ich das jetzt (habe wie oben den screen befehl
gestrtet )

PID TTY TIME CMD
21450 ? 00:00:01 server_linux
21451 ? 00:00:00 server_linux
21452 ? 00:00:14 server_linux
21453 ? 00:00:31 server_linux
21454 ? 00:00:41 server_linux
21455 ? 00:00:00 server_linux
21456 ? 00:00:00 server_linux
21457 ? 00:00:00 server_linux
21458 ? 00:00:00 server_linux
9029 ? 00:00:00 sshd
9030 pts/5 00:00:00 bash
9210 ? 00:00:00 screen
9211 pts/1 00:00:09 server-bin
9212 pts/1 00:00:00 server-bin
9213 pts/1 00:00:00 server-bin
9342 pts/5 00:00:00 ps

mfg traster
 
9213 pts/1 00:00:00 server-bin
du hast das ja dreinmal laufen log mal aus logwieder ein und guck ob es immernoch luft :)
 
(a) installiert.
Ich finde den screen praktischer als nohup. So ist der Prozess nämlich nicht zu weit weg.

Das mit dem screen als root war ja nur für das 'apt-get' beispiel gedacht. Klar kannste den auch als normaler User nutzen.
 

Ähnliche Themen

Programm automatisiert auf mehreren Rechnern starten und beenden

Server-Monitoring mit RRDTool

[HowTo] TeamSpeak 2 - RC2 - Server (Deutsch/Englisch)

Linux Systemadministration v. Jochen Hein

Zurück
Oben