[Debian] Demarrage automatique d'un .sh

Utilisateur anonyme -  
 Stdliege -
Bonjour à tous !

Afin de ne pas retapper à chaque redemarrage de mon server dédié ( Debian 4.0 ) toutes les commandes de démarrage de programmes, en lisant des tutos, j'ai vu que l'on pouvait faire des scripts de démarrage.

Pour cela, j'ai déjà créer un fichier nommé: "demarrage.sh" et je l'ai placé dans le répertoire tel que "/etc/init.d/demarrage.sh".


Après cela j'ai tappé en tant que "root" sans les premiers guillemets bien sûr :

"chmod -v 0644 /etc/init.d/demarrage.sh
update-rc.d demarrage.sh defaults"


Pour finir, voici le script que j'ai tapper dans le fichier "demarrage.sh" sans les guillemets encore une foi :

"#!/bin/sh
#Lancement du serveur Teamspeak
cd /home/ts/tss2_rc2/
./teamspeak2-server_startscript stop
./teamspeak2-server_startscript start


#!/bin/sh
#Lancement du serveur privé
cd /usr/steam/prive
screen -dmS prive ./hlds_run -game cstrike +maxplayers 16 +map de_nuke +port 27015 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos


#!/bin/sh
#Lancement du serveur public
cd /usr/steam/public
screen -dmS public ./hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27020 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos


#!/bin/sh
#Lancement du serveur kz_
cd /usr/steam/kz
screen -dmS kz ./hlds_run -game cstrike +maxplayers 32 +map kz_volcano +port 27030 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos


#!/bin/sh
#Lancement du serveur deadmatch
cd /usr/steam/deadmatch
screen -dmS deadmatch ./hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27040 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos


#!/bin/sh
#Lancement du serveur gungame
cd /usr/steam/gungame
screen -dmS gungame ./hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27010 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos"



Voilà, si vous pouviez m'aider à me dire ce qui ne va pas je vous en serez très reconnaîssant !
Merci d'avance!
A bientôt !
A voir également:

61 réponses

Utilisateur anonyme
 
?
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

bon, vu que tu n'as pas encore réussi, je te propose qu'on recommence de début ;-)

affiche le contenu du
teamspeak2-server_startscript
ensuite affiche toute le commandes que tu tape à la main, donc pas le contenu de ton script

si j'ai bien compris pour que les commandes s'exécute tu dois d'abord démarrer le server teamspeak2-server_startscript?
0
Utilisateur anonyme
 
Salut,

Ques tu veux dire par "affiche le contenu de 'teamspeak2-server_startscript' ?"

Ne sachant pas, je l'ai ouvert au bloc note, et ai fait un copier coller de ce qui s'affiche, ça donne:

#! /bin/bash
# Copyright (c) 2004 TeamSpeak team   All rights reserved.
#
# Author: pwk.linuxfan 2004
#

case "$1" in
	start)
		if [ -e tsserver2.pid ]; then
			echo "tsserver2.pid already exists...server already started ?";
			echo "If you are sure the server is not running, delete tsserver2.pid"
			exit 1
		else
			if [ "$UID" = "0" ]; then
				echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
				for c in $(seq 1 10); do
					echo -n "!"
					sleep 1
				done
				echo !
			fi
			echo "starting the teamspeak2 server"
			if [ -e server_linux ]; then
				if [ ! -x server_linux ]; then
					echo "server_linux is not executable, trying to set it"
					chmod u+x server_linux
				fi
				if [ -x server_linux ]; then
					./server_linux -PID=tsserver2.pid
				else
					echo "server_linux is not executable, fix this"
					exit 4
				fi
			else
				echo "Couldnt find server_linux"
				exit 5
			fi
		fi
	;;
    stop)
		if [ -e tsserver2.pid ]; then
			echo -n "stopping the teamspeak2 server"
			if ( kill -TERM `cat tsserver2.pid` ); then
				for c in $(seq 1 300); do
					if [ -e tsserver2.pid ]; then
						echo -n "."
						sleep 1
					fi
				done
			fi
			if [ -e tsserver2.pid ]; then
				echo "server does not shutdown cleanly - killing"
				kill -KILL `cat tsserver2.pid`
				rm tsserver2.pid
				sleep 5
			else
				echo "done"
			fi
		else
			echo "tsserver2.pid is missing, no started server ?"
			exit 7
		fi
	;;
	restart)
		$0 stop && $0 start || exit 1
	;;
	status)
		if [ -e tsserver2.pid ]; then
			echo "the server seems to be running"
			exit 0
		else
			echo "the server seems to be stopped"
			exit 3
		fi
	;;
	passwords)
		if [ -e server.log ]; then
			date=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/")
			spass=$(cat server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/")
			pass=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/")
			echo "Following passwords were generated on $date"
			echo "superadmin = \"$spass\""
			echo "admin      = \"$pass\""
		else
			echo "server.log not found, maybe you did not start the server yet ?" 
			exit 1
		fi
	;;
	*)
		echo "Usage: $0 {start|stop|restart|status|passwords}"
		exit 2
esac
exit 0



Voilà sinon pour lancer mes teamspeak, je tappe:
#cd /home/ts/tss2_rc2
#./teamspeak2-server_startscript stop
#./teamspeak2-server_startscript start


Et ensuite, j'enchaine avec les servers steam:

#cd /home/steam/moi/prive
#screen -dmS prive ./hlds_run -game cstrike +maxplayers 16 +map de_train +port 27015 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos


Puis le second steam:
#cd /home/steam/moi/public
#screen -dmS public ./hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27000 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos


Et etc pour les autres servers steam...


Bon voilà, je voudrais que tou demarre tout seul, si tu veux d'autres renseignements, n'ésite pas !
++
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
A faire en root


Etape 1
cp -v /home/ts/tss2_rc2/teamspeak2-server_startscript /etc/init.d/teamspeak2
chmod -v 0755 /etc/init.d/teamspeak2
update-rc.d teamspeak2 defaults
Etape 2
ensuite tu mets tes commandes à la fin de fichier /etc/init.d/rc.local
Attention!!! Vérifie les commandes peut être j'ai fait des erreurs

j'ai utiliser le chemin absolue (pas besoin de faire un cd dans le répertoire
pour exécuter avec ./hlds_run par exemple


screen -dmS prive /usr/steam/prive/hlds_run -game cstrike +maxplayers 16 +map de_nuke +port 27015 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos

screen -dmS public /usr/steam/public/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27020 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos

screen -dmS kz /usr/steam/kz/hlds_run -game cstrike +maxplayers 32 +map kz_volcano +port 27030 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos

screen -dmS deadmatch /usr/steam/deadmatch/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27040 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos

screen -dmS gungame /usr/steam/gungame/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27010 -pingboost 3 -autoupdate -sys_ticrate 1000 -tos

Etape 3

redémarre pour tester
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
J'ai tout vérifier, et rien ne démarre.
Ni le teamspeak, ni les serveurs !

Kes ke je fai moi !!! ???
:'(:'(:'(
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
affiche
fdisk /etc/rc* -name '*team*'
tail -30 /etc/init.d/rc.local
ls -l /etc/init.d/team*
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
ok, bonne nouvelle, j'ai testé chez moi et ça marche :-)

debian:/etc/init.d# ps aux | grep server_linux
root      3727  1.3  0.4  63536  2012 pts/0    RNl  21:58   0:02 /home/lami20j/src/tss2_rc2/server_linux -PID=tsserver2.pid

je te dirai demain comment tu dois faire ;-))

0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
pour l'instant on va nettoyer ce qu'on a fait
update-rc.d -f teamspeak2 remove
rm -v /etc/init.d/teamspeak2
ensuite
as-tu créer un utilisateur ts? je suppose que oui (/home/ts/tss2_rc2/ )
affiche
grep ts /etc/passwd
on va faire étape par étape, d'abord on va démarrer le server
pour les commandes on verra après
0
Utilisateur anonyme
 
Voila, c fait, et ca redemarre toujours pas, j'attend tes instructions ^^

sinn j'ai cette commende a rajouter dans le script de lancement
C'est un add TS

Dans le meme dossier d'ou on lance TS: ( cd /home/ts/tss2_rc2 )
./ts2perlmod_multi_startscript stop
./ts2perlmod_multi_startscript start

./ts2perlmod_startscript stop
./ts2perlmod_startscript start
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Voila, c fait, et ca redemarre toujours pas
je n'ai pas dit que ça va marcher :-)
j'ai dit qu'on nettoie d'abord et j'ai demandé aussi le résultat d'une commande

donc ne rajoute rien pour l'instant
en fait tu peux bien supprimer tout (je parle de répertoire tss2_rc2)
on va recommencer tout à zéro

et c'est quoi add TS?
si tu ne dit pas exactement ce que tu fait, on ne pourra pas se comprendre

le fait que ça ne marche pas, c'est parce que dans le script il n'y a pas le chemin complet vers le fichier exécutable
donc quand on mets le fichier dans /etc/init.d le script ne sait plus où doit chercher l'exécutable
en plus d'après ce que j'ai lu le server ne doit pas être démarrer en tant que root pour des raisons de sécurité
j'ai réussi à le démarrer en tant que utilisateur

donc pour l'instant pas de add TS, ça tu le feras après

donc pour finir j'ai besoin que tu m'affiches le résultat de
grep ts /etc/passwd
ls -l /home/ts

0
Utilisateur anonyme
 
Ah dsl, je croyai que c'était une commende à entrer, alors je n'avait pas afficher,
Donc voilà, ça donne:

ns22393:~# grep ts /etc/passwd
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
ns22393:~# ls -l /home/ts
total 4
drwxr-xr-x 13 max users 4096 2007-09-07 17:40 tss2_rc2
ns22393:~#


Et le add TS c'est un bot qui surveille le TS :P
0
Hikage
 
Je me permet de faire up ce fil car non resolu.

Predator125 ou en est tu avec ton teamspeak et tes serveurs steam.
je pourrais peu-etre t'aider

voici ce que j'ai fait
chmod 0755 /etc/init.d/teamspeak-ro.sh
puis
update-rc.d teamspeak-ro.sh defaults

et voici le code de mon fichier teamspeak-ro.sh, et tout ceci marche sur dedibox debian 4.0 donc si ça peux aider.
Je fait stop afin d'être sur que tout soit éteint puis je lance le tout malgré que ce soit au démarrage du serveur si on lance le serveur ts après un crash de la machine celui-ci ne veux pas démarrer du fait que le ficheir *.pid existe deja le fait de stop resout le probleme il detruit le fichier *.pid

#!/bin/bash
#Arret de Teamspeak Serveur, Perl Mod Script et killall screen pour fermer le Serveur RO
#puis lancement de Teamspeak Serveur, Perl Mod Script et du Serveur RO

EA=serveur
EA_DIR=/home/eathena
TS=teamspeak2-server_startscript
TS_DIR=/home/teamspeak/server
PERL=startscript
PERL_DIR=/home/teamspeak/perlmod

killall screen
cd ${TS_DIR}
./${TS} stop
cd ${PERL_DIR}
./${PERL} stop
cd ${EA_DIR}
screen -dmS AutoStart ./${EA}.sh
cd ${TS_DIR}
./${TS} start
cd ${PERL_DIR}
./${PERL} start
0
booby
 
Je répond bien tard mais bon...

Je crois que Teamspeak ne peut pas se lancer avec le compte root. Or au démarrage ton script s'exécute avec le compte root, ce qui bloque ton script au moment où il essaie de lancer teamspeak.

Essaie de mettre :
sudo -u monUtilisateurTeamspeak sh /home/ts/tss2_rc2/teamspeak2-server_startscript start

dans ton script de démarrage.
La commande sh revient au même que ./ sauf que tu ne peux pas utiliser ce dernier avec la commande sudo par exemple.
0
Stdliege
 
Le programme que tu lance pour que ton serveur dédié s'ouvre tu le place dans Démarrage de windows se trouvent dans :

Démarrer - Tous les programmes et la vous cherchez Démarrage, une fois trouver vous prennez le dossier ou fichier contenant le serveur dédié et placer le dedans.

Voilà, à chaque démarrage votre serveur se lancera ;)
0
Marc
 
Bonjour!!!

"Voilà, si vous pouviez m'aider à me dire ce qui ne va pas je vous en serez très reconnaîssant ! "

'Bah... la guerre ca craint"

C'est à toi de nous dire ce qui ne va pas!!!!!!
-1
Utilisateur anonyme
 
Le problème c'est que rien ne se lance au demarrage ^^ :S

Et que je suis encore obliger de tout tapper à chaque reboot.
Le script ne fonctionne pas quoi !
-1
Utilisateur anonyme
 
Allo, quelqu'un pourai me dire ce qui ne va pas pour que ça marche S.V.P !
-1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

il me semble que ton script a besoin de server X pour demarré.
c'est bien ça?
-1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
je voulais demandé si'il te faut une interface graphique pour le démarrer :-)
-1
Utilisateur anonyme
 
Non, il me faut juste et seulement Putty !
-1
Utilisateur anonyme
 
Nan, ça ne marche tjrs pas ....
C'est chiant !!!!!
-2