NoDino
5-Minuten-Ei

Dabei seit: 04.03.2008
Beiträge: 16

|
|
CoD Linux Server automatisch starten |
 |
Hallo,
ich möchte das mein CoD Gameserver automatisch beim Server restart gestartet wird.
Bzw. der Server über console cod start|stop|restart gesteuert werden kann.
Auf meinem Root Server läuft Linux Fedora Cora 6.
Folgendes Script habe ich hier im Forum gefunden und versucht für CoD1 anzupassen:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
|
#! /bin/sh
# /etc/init.d/cod
### BEGIN INIT INFO
# Provides: CoD
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# X-UnitedLinux-Should-Start: network
# Description: Start CoD server
### END INIT INFO
# Version 2 (11/12/2005)
# Copyright (c) 2005 Soenke Gluch
# [EMAIL]gluch@informatik.uni-bonn.de[/EMAIL]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
###
# Settings
#
# server port
SrvPort="28960"
#
# rcon password
SrvRCONPwd="xxxxxx"
#
# logfile (this is NOT the games_mp.log file from the server!)
log="/var/log/cod/cod.log"
#
# user under which the server should run
user="root"
#
# path to the server
path="/home/gameserver/cod"
#
# the server executable
codX="$path/cod_lnxded"
#
# server parameters
params="+set fs_homepath $path +set net_port $SrvPort +pb_sv_enable 1 +exec cod1.cfg"
#
# timeout after that the server will be killed (in seconds)
timeout=20
#
###
./etc/rc.status
SrvIP="localhost"
case "$1" in
start)
echo -n "Starting CoD server"
checkproc $codX && echo -n "(already running)" || su -c "cd $path && $codX $params 2> $log >&2" $user &
rc_status -v
;;
stop)
echo -n "Shutting down CoD server"
checkproc $codX || echo -n "(not running)" && echo "ÿÿÿÿrcon $SrvRCONPwd quit" | netcat -u -w1 $SrvIP $SrvPort 2> /dev/null >&2
for ((i=0; i <= timeout ; i++)); do
checkproc $codX || break && sleep 1
done
checkproc $codX && killproc $codX || echo -n
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
|
|
(Das Script wird z.Zt. als root ausgeführt ... das kann ich wenns läuft ja noch ändern.)
Das Script habe ich unter: /etc/rc.d/init.d als cod abgespeichert.
Die Links habe ich wie folgt angelegt:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
ln -s /etc/init.d/cod /usr/local/bin/cod |
|
Wenn ich nun versuche den CoD Server mit cod start zu starten bekomme ich folgende Fehlermeldung:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
/usr/local/bin/cod: line 59: /etc/rc.status: Datei oder Verzeichnis nicht gefunden |
|
Desweiteren wird CoD beim Root-Server Reboot nicht automatisch gestarten.
Kann mich vielleicht jemand an die Hand nehmen, mir welche an den Hinterkopf hauen, und mir auf die Sprünge helfen?
Was mache ich Falsch?
Gruß NoDino
PS: Falls das hier im Forum schonmal geklärt wurde bitte nicht gleich schlagen ... Ich würde mich über weiterführende Links freuen.
|
|
|
|
|
 | |
 |
Kelli
... sehr viel alleine
 
Dabei seit: 09.11.2006
Beiträge: 2.504

|
|
Original von NoDino
Das ist jetzt mein FUNKTIONIERENDES autostart|start|stop|restart & status script.
Super das du es hinbekommen hast.
Original von NoDino
Jetzt kann ich mich an den CoD4 Server wagen ... .. . OhGott
Eigentlich brauchst du nur Script, Params und Name anpassen, dann sollte es sofort gehen.
Du musst aber aufpassen wegen dem Name, das hier ist so nicht ideal:
# User Name
G_USER=cod
# Screen Name
NAME=cod
In dieser Zeile
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
passiert nämlich folgendes:
- Suche nach Prozessen die unter screen laufen
- In diesen screen Prozessen alle killen in denen die Zeichenfolge "cod" vorkommt.
Wenn dein Benutzer "cod" heißt kann es passieren das dies auf alle Screen Fenster zu trifft (Wenn der Name des Benutzers statt der id zurückgegeben wird.) Deswegen mach den Namen eindeutig, srvcod-28960 , srvcod4-28961 oder ähnlich.
Hast du das mit dem Reboot getestet? Wenn der root rebootet ohne das der Server vorher angehalten wurde, kann es sein das die Datei
lockfile=/var/lock/subsys/cod
nach dem restart noch existiert. Denn die wird nur gelöscht wenn wenn du den Server ordentlich über stop anhälst. Ich bin mir aber nicht sicher, kann sein das Fedora beim start von selbst alles löscht was unter /var/lock/ liegt. Dann sollte es funktionieren wie gewollt.
__________________ „ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“
Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.
https://kkde.de/scum/
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|