[Debian] Demarrage automatique d'un .sh
Stdliege -
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 !
Configuration: Windows XP Firefox 2.0.0.5
- [Debian] Demarrage automatique d'un .sh
- Forcer demarrage pc - Guide
- Demarrage automatique - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Rebooter un pc au démarrage - Guide
- Programme demarrage windows - Guide
61 réponses
- 1
- 2
- 3
- 4
Le problème porte sur la mise en place de scripts de démarrage sous Debian via /etc/init.d et update-rc.d pour lancer simultanément plusieurs serveurs (Teamspeak et CS) au démarrage, sans réussir à les activer correctement. Des réponses suggèrent d'enregistrer le script avec update-rc.d, d'être dans /etc/init.d puis d'exécuter update-rc.d nom_du_script defaults, et de vérifier que le fichier est exécutable, afin d'éviter les erreurs de syntaxe. Plusieurs interventions recommandent des solutions pratiques comme créer des symlinks vers les scripts réels, rendre les scripts exécutables en 0755, et lancer les services sous un utilisateur non root pour Teamspeak.
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
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
mv /etc/init.d/demarrage.sh /etc/demarrage.sh chmod -v 0755 /etc/demarrage.sh echo '/etc/demarrage.sh' >> /etc/init.d/rc.local
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJ'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
Pasque la, je seche et puis c'est chiant de tout retapper à chaque fois :S
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.
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 ++
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
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
/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 +
/home/ts/tss2_rc2/ ./teamspeak2-server_startscript restart
en revanche tu peux essayer
/home/ts/tss2_rc2/teamspeak2-server_startscript restart
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 :'(
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
"#!/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"
sh /etc/init.d/demarrage.sh, on est bien ok que ca te lance tes serveurs comme tu veux.
hackzor
"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:~#"
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
- 1
- 2
- 3
- 4