Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme als user Screen zu starten
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
[...](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?
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
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.
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...
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?
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
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
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
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).
@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.
@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?
@ suck normalerweise öffnet doch der user neue pseudoterminals... bei mir exisistiert nur eins (pts/0) und die user legen sich keins an? :confused:
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.