[Debian] Demarrage automatique d'un .sh

Fermé
Utilisateur anonyme - 13 août 2007 à 18:03
 Stdliege - 30 mai 2010 à 21:27
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

hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 16:52
le message d'erreur que tu obtiens quand tu fait ton update-rc.d indique que tu a une erreur de syntaxe.
donc ca ne marche pas.

voila pourquoi tes serveurs ne demarre pas quand tu lance ton serveur.

deja place toi dans le repertoire /etc/init.d
puis tape update-rc.d demarrage.sh defaults

tu devrai obtenir:
hackzor:/etc/init.d# update-rc.d bondour defaults
 Adding system startup for /etc/init.d/bondour ...
   /etc/rc0.d/K20bondour -> ../init.d/bondour
   /etc/rc1.d/K20bondour -> ../init.d/bondour
   /etc/rc6.d/K20bondour -> ../init.d/bondour
   /etc/rc2.d/S20bondour -> ../init.d/bondour
   /etc/rc3.d/S20bondour -> ../init.d/bondour
   /etc/rc4.d/S20bondour -> ../init.d/bondour
   /etc/rc5.d/S20bondour -> ../init.d/bondour
hackzor:/etc/init.d#


Ce message indique que ton prog est correctement enregistré.

Et la ca devrait marcher.

Hackzor
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 août 2007 à 19:26
Salut,

chmod -v 0644

et pourquoi 644?
en traduction ça donne
-rw-r--r--
c'est qui n'est pas très bon si tu veux que ton script s'exécute
fait un
chmod -v 0755 /etc/init.d/demarrage.sh 
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 août 2007 à 15:02
Salut,
mv /etc/init.d/demarrage.sh /etc/demarrage.sh
chmod -v 0755 /etc/demarrage.sh
echo '/etc/demarrage.sh' >> /etc/init.d/rc.local


0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
22 août 2007 à 10:48
Salut,

affiche
ls -l /etc/rc.local
tail 5 /etc/init.d/rc.local
/sbin/runlevel
find /etc/ -name 'rc.local'
ls -l /etc/demarrage.sh
--
lami20j
0

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

Posez votre question
Utilisateur anonyme
23 août 2007 à 08:08
Salut,

J'ai rebboter le dedié puis tapper au demarrage ces configs, voilà ce que cà donne :

ns22393:~# ls -l /etc/rc.local
-rwxr-xr-x 1 root root 666 2007-05-16 10:27 /etc/rc.local

ns22393:~# tail 5 /etc/init.d/rc.local
tail: Ne peut ouvrir `5' en lecture: Aucun fichier ou répertoire de ce type
==> /etc/init.d/rc.local <==
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
/etc/demarrage.sh

ns22393:~# /sbin/runlevel
N 2

ns22393:~# find /etc/demarrage.sh
/etc/demarrage.sh

ns22393:~# ls -l /etc/demarrage.sh
-rwxr-xr-x 1 root root 1140 2007-08-22 02:28 /etc/demarrage.sh
0
Utilisateur anonyme
28 août 2007 à 08:31
Quelqu'un peux m'aider svp ?
Pasque la, je seche et puis c'est chiant de tout retapper à chaque fois :S
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 10:05
qu'a tu fait comme configuration sur ton serveur.
Genre les logiciels que tu a installé (interface graphique)
as tu suivit un tuto pour installe ton serveur?
Moi j'ai fait mon serveur aussi, plus porté lamp, mais j'ai lancé un script pour iptables de ma meme maniere, et chez moi aucun probleme.
0
Utilisateur anonyme
28 août 2007 à 11:44
Salut,

Comment ça comme configuration ?
J'ai fait les mises à jour qu'ils disent chez OVH pour avoir les pages webs: "https://docs.ovh.com/fr/" d'ailleurs à propos ma page web ne fonctionne pas: "http://ns22393.ovh.net/" ça me met toujours la page d'erreur de raffraichissement :S

Bah j'ai juste installer Teamspeak et des servers steam. Aucun en interface graphique.
En fait, tout ce que j'ai installé est dans la liste de demarrage autommatique écrite à mon premier post.

Ouai j'ai suivi des tutos pour installer mes programmes:
- "http://www.cs-amx.com/images/wall_amx_404.jpg" <=== Pour les servers steam
- "https://forum.ovh.com/showthread.php/11981" <=== Pour Teamspeak

Dans le tutos pour teamspeak ils disent aussi comment faire le démarrage automatique mais j'ai essayer et faite une 20ène de tutos et ça marche toujours pas :S

Ce que je ne comprend pas, c'est que tout ce lance parfaitement quand je fais manuellement au demarrage, pourquoi avec le script cela ne demarre-t-il pas ??

Voilà, éclairez-moi un peu svp, je debute en Linux :P
Merci ++
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 août 2007 à 12:33
Salut,

Ce que je ne comprend pas, c'est que tout ce lance parfaitement quand je fais manuellement au demarrage, pourquoi avec le script cela ne demarre-t-il pas ??
Je vois dans tes script l'exécution de la commande cd, ce qui suppose que tu as une session ouverte et le cd peut s'exécuter ce qui n'est pas le cas si la session n'est pas ouverte, donc je ne pense pas que tu peux utililser ce script au démarrage de don système.
En revanche tu pourras l'utiliser au démarrage de ta session en mettant la commande dans le fichier d'initialisation de shell (si tu utilises le shell bash alors le fichier s'appelle .bashrc)

Un utilisateur normal peux exécuter ce script?

Une autre possibilité c'est de modifier tes scripts

Par exemple
au lie de

#!/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


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

Pourquoi pas écrire directement les commandes dans /etc/rc.local

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 

--
lami20j
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 12:37
ok deja on avance.
tu est sur un mutu ou un dedié chez ovh?

quand tu a fait ton update-rc, tu a du voir une serie de 6 lignes apparaitre en dessous de ta cimmande. correct?

Je sais que moi j'ai toujours eu des difficulté avec update-rc pour qe ca fonctionne.
sinon il faut bien que tu fasse ton chmod en 755 et ensuite ton update-rc

sinon tu peux essayer de faire l'equivalent de ce que fait update-rc avec des ln -s.

http://www.debian-fr.org/article.php?page=viewarticle&article=4 <<--- update-rc

pour ton serveur apache c'est un autre probleme.

Frégis
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 août 2007 à 12:42
Salut,

si le script ne s'exécute pas avec rc.local alors je ne pense pas que la piste update-rc.d fait l'affaire
pour rc.local on a bien les liens dans les /etc/rcN.d
0
Utilisateur anonyme
28 août 2007 à 14:16
@ lami20j, ===> J'ai exactement tappé comme tu as dit:

/home/ts/tss2_rc2/ ./teamspeak2-server_startscript restart

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

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

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

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

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


J'ai essayé dans mon "demarrage.sh" ainsi que dans le "rc.local" mais rien de démarre dans aucun des deux cas :SS

Pour "/etc/rcN.d" il existe pas :/
Et que veux-tu dire par "si le script ne s'exécute pas avec rc.local alors je ne pense pas que la piste update-rc.d fait l'affaire
pour rc.local" ?


@ hackzor44, ===> J'ai un dedié. C'est le "https://www.ovhcloud.com/fr/bare-metal/".

Quand j'ai fait mon "update-rc", voici ce qu'il c'est affiché :

"ns22393:~# update-rc.d demarrage.sh default 99
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | sNN kNN]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
-n: not really
-f: force
ns22393:~#"

Donc pas de "correct" :/ Ca vient de quoi ?
Et j'ai bien fait le "chmod -v 755 /etc/init.d/demarrage.sh"

Sinn c'est quoi la difference entre "update-rc" et "ln -s" ?



Merci +
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 août 2007 à 14:35
je n'ai pas dit ça

/home/ts/tss2_rc2/ ./teamspeak2-server_startscript restart
en revanche tu peux essayer
/home/ts/tss2_rc2/teamspeak2-server_startscript restart 
0
Utilisateur anonyme
28 août 2007 à 17:31
J'ai renomé ma ligne Teamspeak et replacé dans "rc.local" et ça marche tjrs pas !!!!

Et j'ai renomé mon "demarrage.sh" et refait toutes les commendes, ça ma bien mis tt ske tu décrit "hackzor44" mais niet, rien qui demarrare :'(
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 18:37
ok, c'est deja un bon point si tu a eu le bon resultat.

ton script doit commencé par :
#!/bin/sh


tu n'a besoin que de le declarer qu'une seul fois

ensuite effectivement le plus simple c'est de mettre ton chemin absolut pour lancé steam

Est ce que tu peux reaffiché ton code, voir ou tu en ai.

Hackzor
0
Utilisateur anonyme
28 août 2007 à 18:54
Si je met ça, c'est bon ??

"#!/bin/sh
#Lancement du serveur Teamspeak
/home/ts/tss2_rc2/teamspeak2-server_startscript restart

#Lancement du serveur privé
screen -dmS prive /home/steam/moi/prive/hlds_run -game cstrike +maxplayers 16 +map de_train +port 27015 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos

#Lancement du serveur public
screen -dmS public /home/steam/moi/public/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27000 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos

#Lancement du serveur kz
screen -dmS kz /home/steam/moi/kz/hlds_run -game cstrike +maxplayers 32 +map kz_6fd_volcano +port 27030 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos

#Lancement du serveur deadmatch
screen -dmS deadmatch /home/steam/moi/deadmatch/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27040 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos

#Lancement du serveur gungame
screen -dmS gungame /home/steam/moi/gungame/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27010 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos"
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 18:59
ca me parait bon.
0
Utilisateur anonyme
28 août 2007 à 19:48
Ouai et bah niet !
Tjrs rien qui marche :S:S
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 19:56
quand tu fais
sh /etc/init.d/demarrage.sh
, on est bien ok que ca te lance tes serveurs comme tu veux.
hackzor
0
Utilisateur anonyme
28 août 2007 à 20:01
Ah bah nan, ca demarrare pas merde, ça met un message d'erreur:

"ns22393:~# sh /etc/init.d/demarrage1.sh
Usage: /home/ts/tss2_rc2/teamspeak2-server_startscript {start|stop|restart|status|passwords}
: command not foundge1.sh: line 2:
: command not foundge1.sh: line 4:
: command not foundge1.sh: line 6:
: command not foundge1.sh: line 8:
: command not foundge1.sh: line 10:
: command not foundge1.sh: line 12:
ns22393:~#"
0
hackzor44 Messages postés 19 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 15 mai 2008
28 août 2007 à 22:56
bon bah voila, on avance.

deja mais juste start plutot que restart.
puisque c'est au moment ou tu demarre donc ton serveur ne doit pas etre allumé.

et ensuite pour lancer tes serveur hlds, il doit falloir mettre un point devant ta commande:
screen -dmS deadmatch ./home/steam/moi/deadmatch/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +port 27040 -pingboost 3 -autoupdate +sys_ticrate 1000 -tos 


un point devant /home/steam/etc...

hackzor
0