Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Hilfe » Linux-Server: Starten per "Verknüpfung" / Nicht als Root starten » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Linux-Server: Starten per "Verknüpfung" / Nicht als Root starten 1 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,00
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
]Bravo[ Mykill
Teetrinker


Dabei seit: 14.03.2006
Beiträge: 38


Linux-Server: Starten per "Verknüpfung" / Nicht als Root starten Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

hab mal wieder 2 Fragen:

1. Wie genau erstelle ich mir ein Startscript, um nicht immer im Screen alles per Hand eingeben zu müssen? Schön wäre auch, wenn ich mehrere Startscripte mit verschiedenen Parametern per Webmin starten könnte.

2. Ich habe einen neuen User für den CoD4-Server angelegt und ihm auch alle nötigen Rechte im CoD4-Ordner gegeben. Wenn ich jetzt den Server unter diesem User starten will, bekomme ich ne Fehlermeldung, dass in "/root/.callofduty4" nicht geschrieben werden kann...oder so ähnlich.
Was muss ich tun, damit ich den Server nicht unter Root starten muss?

__________________

]Bravo[ Mykill ist offline E-Mail an ]Bravo[ Mykill senden Beiträge von ]Bravo[ Mykill suchen Nehmen Sie ]Bravo[ Mykill in Ihre Freundesliste auf
yoda yoda ist männlich
Böser Admin

images/avatars/avatar-12.jpg


Dabei seit: 21.01.2004
Beiträge: 12.269


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Schau mal hier rein:
Linuxserver starten

__________________
"Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."

Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
yoda ist offline Homepage von yoda Beiträge von yoda suchen Nehmen Sie yoda in Ihre Freundesliste auf
]Bravo[ Mykill
Teetrinker


Dabei seit: 14.03.2006
Beiträge: 38


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke yoda. Das mit dem "Nicht-Als-Root-Starten" hab ich hinbekommen. Grins 1

Hab allerdings nichts gefunden, was mir in Bezug auf die start.sh oder einen Webmin-Befehl weiterhilft.

Kann mir das mal jemand Schritt für Schritt erklären, wie ich eine start.sh erstelle?

Ich nutze folgende Befehle, wenn ich einen Server starte:

screen -mS cod4

./cod4_lnxded +set fs_homepath /home/cod4/.callofduty4 +set fs_basepath /home/cod4/ +set loc_language 2 +set dedicated 2 +exec public_ranked.cfg +map_rotate

Strg + A + D
Strg + A + D


Damit läuft der Server einwandfrei, auch als Nicht-Root.

Kann ich diese Folge einfach in eine Datei schreiben und die dann ausführen? Oder müssen da noch andere Befehle rein?

__________________

]Bravo[ Mykill ist offline E-Mail an ]Bravo[ Mykill senden Beiträge von ]Bravo[ Mykill suchen Nehmen Sie ]Bravo[ Mykill in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dann brauchste auch kein screen mehr.

Code einblendenCode 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:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
#!/bin/sh
# Benutzer Kram
PORT="28960"
##### Das Startscript sollte im Namen den Port haben, also start28000, start28960 etc..
HOMEDIR="/home/ios/.cod4-28960"
BASEDIR="/home/ios/games/cod4"
MOD="ios"
CONFIG="cod4clanserver.cfg"

# Log und Pid
LOGFILE=$HOMEDIR/server.log
INITPIDFILE=$HOMEDIR/init.pid
PIDFILE=$HOMEDIR/cod.pid

# Ab hier wirds spannend
COMMAND="cod4_lnxded +set fs_basepath $BASEDIR/ +set fs_homepath $HOMEDIR/ +set
fs_game $MOD +set dedicated 2 +set net_port $PORT +set sv_punkbuster 1  +set loc_language 2 +exec $CONFIG +map_rotate"

case "$1" in
start)
if test -f $INITPIDFILE ; then
echo "Startscript lauft schon";
elif test -f $PIDFILE ; then
echo "Server laeuft schon";
echo "Nix zu tun, Probier mal die Option check";
echo "Sollte er ganz sicher nicht laufen von Hand die init.pid und cod.pid aus $HOMEDIR/pid loeschen.";
else
echo Starte Server Port $PORT
$0 fork > $HOMEDIR/output$PORT.log 2>$HOMEDIR/output$PORT.log &
echo $! > $INITPIDFILE
disown
fi
;;
stop)
if test -f $INITPIDFILE ; then
if ps -p `cat $INITPIDFILE` | grep start$PORT 1> /dev/null 2> /dev/null ; then
echo killing start$PORT
kill -TERM `cat $INITPIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $INITPIDFILE` 1> /dev/null 2> /dev/null
fi
rm $INITPIDFILE
else
echo Finde das Startscript nicht.
fi
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep cod4_lnxded 1> /dev/null 2> /dev/null ; then
echo killing cod4_lnxded
echo nun ist Schluss mit Zocken
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
else
echo Hab den Server nicht gefunden
echo Nix zu tun
fi
;;
restart)
$0 stop
$0 start
;;
check)
## Entfernt die PID wenn der Server nicht leuft, ist aber unsicher bei mehreren
Servern.
if test -f $INITPIDFILE ; then
if ! ps -p `cat $INITPIDFILE` | grep start$PORT $1> /dev/null 2> /dev/null ; then
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep ucc 1> /dev/null 2> /dev/null ; then
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
rm $INITPIDFILE
$0 start > /dev/null
fi
else
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep cod4_lnxded 1> /dev/null 2> /dev/null ; then
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
$0 start > /dev/null
fi
;;
fork)
while [ true ] ; do
$BASEDIR/$COMMAND &
echo $! > $PIDFILE
wait
echo "sollte jetzt laufen."
done
;;
*)
echo "Usage: $0 {start|stop|restart|check}"
;;
esac      


- Speichern unter start(PORT) also zb. start28960
- chmod u+x ./start28960
- Die Pfade oben anpassen

zum starten:
start28960 start
zum stoppen:
start28960 stop

Logfile der Console zur Fehlersuche liegt in Homedir des Servers unter output-PORT.log

Have a nice day.

__________________
„ 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/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
VincentRaven
5-Minuten-Ei


Dabei seit: 07.05.2011
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

ich versuche mich auch grad in linux, root, gameserver ein zu arbeiten. Bin noch recht Newbie und auch großes Interesse daran, mehrere Forks bzw. Instanzen von Cod4 zu starten.

Im Grunde klappt das auch schon. Ich hab mir mehrere Start-Dateien gebastelt und mehrere server-cfgs. Und damit starte ich derzeit 3 Server.


Allerding: Wenn ich einen Restarte, gehen alle anderen mit down, weil in den Scripts irgendwo ein killall drin steht. Ich denke, ich habe da irgendetwas noch nicht verstanden.

Dann bin ich auf dieses Startscript gestossen und erhoffe mir damit eine Lösung, dass nicht immer alle Server gekillt werden und habe eine neue Datei angelegt und es hinein kopiert.

Jetzt bekomme ich beim starten aber immer den Fehlercode

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
 104:Syntax error: end of file unexpected (expecting ") ")
 



Hat jemand eine Idee?
Alternativ würde es mir schon helfen, wenn mir jemand sagen kann, wie ich einen Server bzw. Prozess gezielt killen kann.

lg Vince

Linux: ubuntu
VincentRaven ist offline Beiträge von VincentRaven suchen Nehmen Sie VincentRaven in Ihre Freundesliste auf
Puma
aka ulli_123


Dabei seit: 26.04.2006
Beiträge: 443


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nichts leichteres als das, PID raussuchen und per killbefehl beenden.

Bsp.
kill 1234

__________________
Gruß
Puma
Puma ist offline E-Mail an Puma senden Homepage von Puma Beiträge von Puma suchen Nehmen Sie Puma in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von VincentRaven
Jetzt bekomme ich beim starten aber immer den Fehlercode

104:Syntax error: end of file unexpected (expecting ") ")


Du hast beim copypasta einen Fehler gemacht - da fehlt eine Klammer.

Siehe auch hier https://www.opferlamm-clan.de/start-scri...ame-server.html
Startscript mit Childprozess - du musst nur jedem einen eindeutigen Namen geben -
##### Das Startscript sollte im Namen den Port haben, also start28000, start28960 etc..

__________________
„ 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/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
VincentRaven
5-Minuten-Ei


Dabei seit: 07.05.2011
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für Eure Antworten.

1. Der Kill-Befehl ist natürlich super und wird von mir schön angewendet.

Jetzt soll aber das Script zum Einsatz kommen, da alle Server den Ordner .callofduty4 anlegen und ich die eigentlich schön von einander trennen möchte.


2. Der Copy-Paste-Fehler ist streng genommen kein Fehler, bzw. der oben gepostete Code scheint nicht vollständig zu sein. Ich glaube, es fehlt auch keine Klammer sondern das hier nach ";;":

esac
exit 0


zumindest lässt sich das Script dann aufrufen und ausführen. Jetzt bekomme ich allerdings folgende Fehlermeldung:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
./start28960: 103: cannot create /var/www/gameserver/cod4/.cod4-28960/output28960.log: Directrory nonexistent
./start28960: 103: cannot create /var/www/gameserver/cod4/.cod4-28960/init.pid: Directrory nonexistent
./start28960: 103 disown: not found



Soweit so gut. Verstanden habe ich, dass der gameserver-user nicht die Rechte hat, das Verzeichnis anzulegen oder das Verzeichnis vielleicht vorher per Hand angelegt werden muss?

Weiss jemand, was ich tun müsste soll?


lg Vince
VincentRaven ist offline Beiträge von VincentRaven suchen Nehmen Sie VincentRaven in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

mkdir /var/www/gameserver/cod4/.cod4-28960/

Lass aber den Punkt bei HOMEDIR und im Verzeichnis weg, mit führenden Punkt ist es ein verstecktes Verzeichnis.
$HOMEDIR="/var/www/gameserver/cod4/cod4-28960/"

mkdir /var/www/gameserver/cod4/cod4-28960/
chown gameserveruser /var/www/gameserver/cod4/cod4-28960/

__________________
„ 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/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
VincentRaven
5-Minuten-Ei


Dabei seit: 07.05.2011
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

1. Also gut, ich hab das so gemacht und den Server gestartet. Zumindest sagt er mir das:

gebe ich "./start28960 start" ein, kommt die Fehlermeldung:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
Starte Server Port 28960
./start28960: 103: disown: not found



Derer Server down, bzw. Timeout im HLSW-Tool.
Und bei "ps ux" bekomme ich:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
gamer    15734  0.0  0.0   7716  2020 ttyp0    S    21:53   0:00 su gamer
gamer    15735  0.0  0.0   4468  1816 ttyp0    S    21:53   0:00 bash
gamer    15764  0.0  0.0   1760   528 ttyp0    S    21:53   0:00 /bin/sh ./start28960 fork
gamer    17851  0.0  0.9 334380 19376 ttyp0    R    21:54   0:00 ./cod4_lnxded-bin +exec nade.cfg +set fs_basepath /var/www/gameserver/cod4/ +set fs_homepath /var/www/gameserver/.cod4-28960/ +set fs_game pro
gamer    17857  0.0  0.0   2644  1012 ttyp0    R+   21:54   0:00 ps ux



Jemand eine Ahnung, was ich da machen kann? Irgendwie scheint es mir so, als ob der user gamer nicht auf "disown" zugreifen kann.
In meinem Übereifer habe ich jetzt als root eingegeben: "usermod -s/bin/bash gamer"
Jetzt kann ich mich per "su gamer" nicht mehr als Gamer anmelden und sonst auch nicht. Und mir wird jedes mal gesagt: "Cannot execute /bin/disown: No such file or directory". Ich glaub jetzt hab ich ziemlich Mist gebaut.... Heul!!!


Mir ist jetzt auch noch aufgefallen das in meinem root-Verzeichnis Dateien von cod4 liegen???

Code einblendenCode 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:
-rwxr-xr-x  1 gamer gamer    1273 2008-07-01 11:16 cod4_lnxded
-rwxr-xr-x  1 gamer gamer 2278332 2008-07-01 11:16 cod4_lnxded-bin
drwxr-xr-x  5 root  root     4096 2011-05-06 02:14 dev
drwxr-xr-x 88 root  root     4096 2011-05-15 22:17 etc
-rw-r--r--  1 root  root        0 2011-05-06 02:14 fastboot
drwxr-xr-x  4 root  root     4096 2011-05-15 22:15 home
drwxr-xr-x 14 root  root    12288 2011-05-05 20:43 lib
-rwxr-xr-x  1 gamer gamer   41384 2007-11-18 07:12 libgcc_s.so.1
-rwxr-xr-x  1 gamer gamer  939472 2007-11-18 07:12 libstdc++.so.6
drwxr-xr-x  2 gamer gamer    4096 2011-05-06 00:24 main
drwxr-xr-x  2 root  root     4096 2011-05-05 20:40 media
drwxr-xr-x  2 root  root     4096 2011-05-05 20:42 mnt
drwxr-xr-x  3 root  root     4096 2011-05-05 20:47 opt
-rwxr-xr-x  1 gamer gamer 2539230 2007-10-24 10:18 pbsetup.run
drwxr-xr-x  2 root  root     4096 2007-10-05 13:00 private-backup
dr-xr-xr-x 65 root  root        0 2011-05-06 02:14 proc
-rw-r--r--  1 gamer gamer    6514 2008-06-28 20:02 README.linux
drwx------  6 root  root     4096 2011-05-06 17:48 root
drwxr-xr-x  2 root  root     5864 2011-05-05 20:42 sbin
drwxr-xr-x  2 root  root     4096 2011-05-05 20:42 selinux
drwxr-xr-x  2 root  root     4096 2011-05-05 20:40 srv
drwxr-xr-x  3 root  root        0 2011-05-06 02:14 sys
drwxrwxrwt  6 root  root     4096 2011-05-15 22:17 tmp
drwxr-xr-x 10 root  root     4096 2011-05-05 20:44 usr
drwxr-xr-x 16 root  root     4096 2011-05-05 20:47 var
drwxr-xr-x  3 gamer gamer    4096 2007-12-20 05:55 zone



Jetzt bin ich durcheinander??? Die müssen da doch weg, oder?

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von VincentRaven: 15.05.2011 22:21.

VincentRaven ist offline Beiträge von VincentRaven suchen Nehmen Sie VincentRaven in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

cat /etc/passwd |grep gamer

__________________
„ 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/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
VincentRaven
5-Minuten-Ei


Dabei seit: 07.05.2011
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Kellerkind.

Ich hab das einfach mal so als root eingegeben:

root@:/home/cod4# cat /etc/passwd |grep gamer
gamer:x:2523:2523::/var/www/gameserver/:/bin/disown
root@:/home/cod4# su gamer
Cannot execute /bin/disown: No such file or directory
root@:/home/cod4#


Ich kann immer noch nicht als gamer einloggen?!
VincentRaven ist offline Beiträge von VincentRaven suchen Nehmen Sie VincentRaven in Ihre Freundesliste auf
VincentRaven
5-Minuten-Ei


Dabei seit: 07.05.2011
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok. Jetzt kann ich einloggen, nachdem ich folgendes eingegeben habe:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
root@:/# usermod -s /bin/bash gamer



Nachdem ich das disown im Startscript auskommentiert habe, läuft er auch einwandfrei.

Danke hier nochmal an alle!
VincentRaven ist offline Beiträge von VincentRaven suchen Nehmen Sie VincentRaven in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Hilfe » Linux-Server: Starten per "Verknüpfung" / Nicht als Root starten

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv