PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme als user Screen zu starten


virox
08.10.06, 18:26
wenn ich folgenden befehl als root ausführe wird der cs server ausgeführt (und in ps aux angezeigt).
screen -A -m -d -S serv50 ./hlds_run -game cstrike +map de_dust2 -maxplayers 10 -port 27055 -tickrate 66 -autoupdate

wenn ich ihn als normaler user ausführe bei mir sshvirox dann startet der server leider nicht... woran könnte das liegen? (die rechte müsste ich haben, da ich alles im serververzeichnis auf 777 gesetzt habe - zum testen)

Die Gameserverdateien sind im ordner /home/sshvirox/server/cs und natürlich bin ich vorher in diesem ordner drin wenn ich den o. g. befehl ausführe

ich hoffe miiir kann einer helfen den ich bin am verzweifeln Sad suche schon das gesamte we nach einer lösung Sad

Wene
08.10.06, 18:38
[...](die rechte müsste ich haben, da ich alles im serververzeichnis auf 777 gesetzt habe - zum testen)[...]
Hallo und willkommen im Forum

Ich hoffe für dich, dass du das nicht auf einem Root server gemacht hast! Und wenn doch, installier die Kiste ganz schnell neu, solange du noch die Kontrolle darüber hast.

Was das Problem mit der Ausführung betrifft: Wie lautet die Fehlermeldung im Wortlaut?

virox
08.10.06, 18:42
natürlich habe ich nicht den kompletten server auf 777 gesetzt (lol :D wär sowas macht ^^ )sondern nur das unterverzeichnis des users (da wo die gameserverdaten liegen) auf 777 gesetzt... und natürlich sofort nach dem testen wieder geändert ;)

leider erscheint keine fehlermeldung auf der konsole, wenn ich den o.g. befehl asl user ausführe... es startet mysteriöserweise kein gameserver

Wene
08.10.06, 18:46
Was passiert wenn du den Gameserver ohne screen startest?
Solange die Konsole offen bleibt, würde auch der Server weiter laufen.
Nur um zu sehen, ob da der Fehler liegt oder am screen.

virox
08.10.06, 19:19
der Server startet bei folgendem befehl:
./hlds_run -game cstrike +map de_dust2 -maxplayers 10 -port 27056 -tickrate 66 -autoupdate
er ist voll funktionsfähig...

Wene
08.10.06, 19:37
screen -A -m -d -S serv50 ./hlds_run -game cstrike +map de_dust2 -maxplayers 10 -port 27055 -tickrate 66 -autoupdate
Wenn du den Befehl wie oben genannt ausführst ist die Sitzung über einscreen -r serv50nicht in den Vordergrund zu holen?
Dass in diesem Fall nichts angezeigt wird ist normal. Mit den Schaltern -d -m legst du ja fest, dass die Sitzung im Hintergrund startet.

Falls das nicht funktioniert, funktioniert dann ein einfaches "screen" um eine neue screen- Sitzung zu starten? Oder was wird da ausgegeben?

virox
08.10.06, 19:48
nein screen -r geht nicht
----

gs2:~/server/cs$ screen
Cannot open your terminal '/dev/pts/0' - please check.
---
auf einem anderen debianpc kommt die gleiche fehlermeldung, aber der server startet (nach ausführen von screen -A -m -d -S serv50 ./hlds_run -game cstrike +map de_dust2 -maxplayers 10 -port 27055 -tickrate 66 -autoupdate) und steht dann in der liste von ps aux

rudi_m
08.10.06, 22:42
gs2:~/server/cs$ screen
Cannot open your terminal '/dev/pts/0' - please check.

Bist Du via su zu dem user geswitched?
Logge dich mal direkt mit ssh als user ein bzw. checke die Rechte von
/dev/pts/0

Desweiteren koenntest Du mal die log funktion (-L) von screen benutzen um zu sehen was passiert, also:
screen -L -A -m -d -S serv50 ./hlds_run ....
und du solltest ein screenlog.0 im aktuellen verzeichnis vorfinden

suck
08.10.06, 23:00
Als User kannst du auf keine PseudoTermialS (PTS) zugreiffen, die nicht dem User gehören, der sie geöffnet hat. Ein "ls -l /dev/pts" zeigt das. Rufe "screen" als root auf oder setze die Rechte des Devices (root-Rechte werden benötigt) mit "chmod 666 /dev/pts/0" auf Lese/Schreibzugriff für alle und jeden.

PS: Evtl. geht auch "chown Username /dev/pts/0" (als root)

PPS: Besser wäre es, wenn der Server direkt unter dem Useraccount läuft - das scheint mal noch nicht der Fall zu sein!

Edit: Die Kommandos musst du nach jedem Neustart eingeben

rudi_m
08.10.06, 23:51
Edit: Die Kommandos musst du nach jedem Neustart eingeben
nein, sogar noch oefter, da sich die sich die Eigentuemer und Rechte ja sogar die Existens der /dev/pts/X im laufenden Betrieb staendig aendern (sollten).

suck
09.10.06, 00:11
@rudi: Weshalb?

rudi_m
09.10.06, 00:35
@rudi: Weshalb?
Wenn sich user_A per ssh einloggt und fuer diese session z.B /dev/pts/8 zustaendig ist sorgt irgend jemand (keine Ahnung ob sshd selbst oder udevd oder bei SuSE z.B resmgrd?) dafuer dass user_A auch die noetigen Rechte auf /dev/pts/8 hat.
Loggt er sich aus sollten ihm die Rechte natuerlich automatisch wieder entzogen werden (bei statischen devices zumindst dann, wenn jemand anderes das pts/8 bekommt). Wird udev verwendet verschwindet /dev/pts/8 sogar automatisch.
Auf jeden Fall bleiben hier Rechteaenderungen immer nur solange garantiert wie irgendjemand auf das Pseudoterminal zugreift.

suck
09.10.06, 00:50
@rudi: Angenommen User X ruft Programm Y auf (mit "nohop Prog_Y &"), dann wird für "Prog_Y" doch ein P-Terminal in beschlag genommen, oder? Geschiet auch in diesem Fall, irgendwann bis das Programm beendet wird, eine Terminierung des P-Terminals oder eine Änderung der Rechte daran oder eine Änderung des Namens?

virox
09.10.06, 18:04
@ suck normalerweise öffnet doch der user neue pseudoterminals... bei mir exisistiert nur eins (pts/0) und die user legen sich keins an? :confused: