PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm mit Screen am Laufen halten


sceptic
30.01.07, 16:23
Hi,
ich habe einen Spieleserver auf meinen Server laufen und möchte, dass sobald der ganze server neu startet auch der Spieleserver neu gestartet wird.
System: debian sarge.
ich hab in /etc/init.d folgende datei angelegt:


#!/bin/sh
#
# start/stop inetd super server.

echo "Starskript fuer server"


case "$1" in
start)
echo "start"
screen -S server
screen -r server
cd /home/software/css/war_2
./srcds_run -game cstrike +map de_dust -port 27030 -maxplayers 16 -tickrate 100 -autoupdate
;;
stop)
echo "stopping:"
//todo
;;
*)
echo "benutze start oder stopp"
exit 1
;;
esac
exit 0


den symlink im richtigen runlevel gibt es auch schon.
problem ist jetzt, dass er den screen auch aufmacht, aber nicht im screen den befehl abarbeitet, sondern solage wartet, bis ich den screen manuell schließe.
gibt es da eine möglichkeit screen das kommando zu übergeben oder sonst irgendwie eine instanz vom programm zu erstellen?
danke für die hilfe.
mfg
sceptic

marce
30.01.07, 16:31
schon mal in der Hilfe zu screen nachgeschaut?

buzz768
30.01.07, 16:38
Vielleicht so?

screen -d -m -S server cd /home/software/css/war_2 ; ./srcds_run -game cstrike +map de_dust -port 27030 -maxplayers 16 -tickrate 100 -autoupdate

sceptic
30.01.07, 17:28
hi, so läuft es leider auch nicht. der spieleserver geht sofort wieder off.
andere ideen?

marce
30.01.07, 17:46
Doku lesen und Suchfunktion benutzen?

Tut's denn manuell?

sceptic
30.01.07, 18:01
jo,
manuell läuft es, wenn ich ./server start eingebe läuft alles so, wie es laufen muss, aber wenn ich dann aus der konsole gehe, ist er wieder off.
die doku hab ich mir schon angeschaut. bin aber nicht wirklich schlau gewurden.
deswegen frag ich ja hier.

Svenny
08.02.07, 15:59
was passiert wenn du den screen befehl per hand eingibst?

HirschHeisseIch
08.02.07, 17:04
screen -d -m -S server "cd /home/software/css/war_2 ; ./srcds_run -game cstrike +map de_dust -port 27030 -maxplayers 16 -tickrate 100 -autoupdate"

Ohne die Quotes interpretiert die Shell das Semicolon, startet screen, führt cd aus, screen beendet sich, und dann wird in der Shell, welche screen ausführt ./srcds_run... ausgeführt.

buzz768
08.02.07, 18:25
Ohne die Quotes interpretiert die Shell das Semicolon [...]
Ups, stimmt. Aber auch so scheint es nicht zu funktionieren, keiner der Befehle wird ausgeführt. Folgendermaßen sollte es aber klappen:

screen -d -m -S server bash -c "cd /home/software/css/war_2 ; ./srcds_run -game cstrike +map de_dust -port 27030 -maxplayers 16 -tickrate 100 -autoupdate"