[Debian] Demarrage automatique d'un .sh

predator125 -  
 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 !
Configuration: Windows XP
Firefox 2.0.0.5

61 réponses

  • 1
  • 2
  • 3
  • 4
Résumé de la discussion

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.

Bobot (l'IA à votre service)
  1. hackzor44 Messages postés 19 Statut Membre
     
    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
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. predator125
     
    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
  7. predator125
     
    Quelqu'un peux m'aider svp ?
    Pasque la, je seche et puis c'est chiant de tout retapper à chaque fois :S
    0
  8. hackzor44 Messages postés 19 Statut Membre
     
    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.
    -1
  9. predator125
     
    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
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  11. hackzor44 Messages postés 19 Statut Membre
     
    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
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  12. predator125
     
    @ 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
  13. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  14. predator125
     
    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
  15. hackzor44 Messages postés 19 Statut Membre
     
    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
  16. predator125
     
    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
  17. hackzor44 Messages postés 19 Statut Membre
     
    ca me parait bon.
    0
  18. predator125
     
    Ouai et bah niet !
    Tjrs rien qui marche :S:S
    0
  19. hackzor44 Messages postés 19 Statut Membre
     
    quand tu fais
    sh /etc/init.d/demarrage.sh
    , on est bien ok que ca te lance tes serveurs comme tu veux.
    hackzor
    0
  20. predator125
     
    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
  21. hackzor44 Messages postés 19 Statut Membre
     
    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
  • 1
  • 2
  • 3
  • 4