DEDIBOX-NEWS.COM

Le Forum Non Officiel de la DEDIBOX

Vous n'êtes pas identifié.

#1 2006-05-07 19:14:17

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Lancer automatiquement un script au démarrage

Salut,
J'aimerais savoir comment lancer mon serveur ts au démarrage pour m'éviter de faire a chaque lancement :
cd /home/ts/tss2_rc2/
./teamspeak2-server_startscript start
Merci
@+
NoNo

Hors ligne

 

#2 2006-05-07 19:16:07

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

il rend la main ton script ou bien une fois que tu exécutes cette commande, ca "prend" le terminal ?

Hors ligne

 

#3 2006-05-07 19:18:03

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Bah quand je lance en root il me repond :

WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
!!!!!!!!!!!
starting the teamspeak2 server
TeamSpeak Server Daemon started with PID 1698

Sinon je comprends aps bien ta question
@+
NoNo

Hors ligne

 

#4 2006-05-07 19:26:41

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

Quand tu exécutes la commande:
./teamspeak.... start

Est-ce que tu as tout de suite le prompt de ton shell qui revient, te permettant de saisir de nouvelles commandes pendant que le serveur tourne en fond, ou bien le serveur s'exécuté dans ton terminal (produit des logs, etc...) et ne te permet plus de saisir de nouvelles commandes à moins de l'arrêter ?

Hors ligne

 

#5 2006-05-07 19:29:12

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Pendant 5-10 secondes il demarre et aprés le prompt revient
@+
NoNo

Hors ligne

 

#6 2006-05-07 20:12:47

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Alors c'est possible ?

Hors ligne

 

#7 2006-05-07 20:13:54

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

Première étape: écrire un script de démarrage. Si t'es sous debian, y a la commande start-stop-daemon qui aide bien.

Ne connaissant pas teamspeak, il faudra sans doute adapter et modifier ce petit script de base.

Première étape: créer un utilisateur/groupe pour ton serveur, avec évidemment l'authentification par mot de passe désactivée, vu que tu ne te loggeras jamais avec ce compte. Dans mon exemple: user1/user1

Voila un bout de script:

Code:

#!/bin/bash

NAME="Wonder server"

SRV_BIN=/home/user1/bin/srv
SRV_OPTS="/home/user1/conf/config.cfg"

SRV_UID=user1
SRV_GID=user1


SSD_BIN=/sbin/start-stop-daemon
SSD_GENERAL_OPTS="--quiet"

case "$1" in
  start)
        echo "Starting $NAME";
        $SSD_BIN $SSD_GENERAL_OPTS --chuid ${SRV_UID}:${SRV_GID} --user $SRV_UID \
                --group $SRV_GID --start --exec $SRV_BIN $SRV_OPTS
        ;;
  stop)
        echo "Stopping $NAME";
        $SSD_BIN $SSD_GENERAL_OPTS --chuid ${SRV_UID}:${SRV_GID} --user $SRV_UID \
                --group $SRV_GID --stop --exec $SRV_BIN $SRV_OPTS
        ;;
  restart|force-reload)
        echo "Restart";

        ;;
  *)
        echo "Usage: {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Tu peux exécuter ce script en root, car lors de l'exécution, le process qui est démarré passe sous user1/user1.
Il faut évidemment ajuster les paramètres passés à ton programme en fonction de ce qu'il attend.

D'autre part, attention si tu prévois d'avoir plusieurs serveurs en parallèle avec une "vie propre" (jeter un coup d'oeil du côté des pidfiles, si le serveur le permet).

En tout cas, man start-stop-daemon avant toute chose.

Une fois que le script fonctionne, c'est à dire que tu peux correctement démarrer et arrêter ton serveur via "monscript start" et "monscript stop", sans "bloquer" le terminal, il sera alors temps d'activer le script au démarrage (update-rc.d).

Hors ligne

 

#8 2006-05-07 20:14:56

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

NoNo a écrit:

Alors c'est possible ?

Avec de tels commentaires, j'ai bien envie de supprimer le bout de script que je viens de mettre. hmm

Hors ligne

 

#9 2006-05-07 20:16:18

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Desolé poster 1 seconde avant ton script
Meric beaucoup pour ton aide
@+
NoNo

Hors ligne

 

#10 2006-05-07 20:18:18

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

NoNo a écrit:

Desolé poster 1 seconde avant ton script
Meric beaucoup pour ton aide

Tu t'abstiendras donc à l'avenir de commentaires de ce genre que ce soit 1 seconde trop tot ou 15 jours plus tard.

Les contributeurs ne te doivent rien. Garde ca bien à l'esprit.

Dernière modification par Calimero (2006-05-07 20:18:44)

Hors ligne

 

#11 2006-05-07 20:21:20

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Sinon j'ai aussi trouver a :

# Starting Teamspeak Server
echo "Starting Teamspeak Server"
sudo -u ts /home/ts/tss2_rc2/teamspeak2-server_startscript start

Hors ligne

 

#12 2006-05-07 20:31:46

J@r0d
Administrator
Date d'inscription: 2006-05-03
Messages: 1872

Re: Lancer automatiquement un script au démarrage

NoNo a écrit:

Bah quand je lance en root il me repond :

WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
!!!!!!!!!!!
starting the teamspeak2 server
TeamSpeak Server Daemon started with PID 1698

Sinon je comprends aps bien ta question
@+
NoNo

Oui c'est normal, une fois que tu a lancer le serveur il reviendra a la ligne sur le prompt, tape dans ce cas: ./teamspeak2-server_startscript status et tu verras qu'il est bien lancé

Le message Warning est la pour t'indiqué qu'il y a un risque a lancer TS en utilisateur root




Pour ce qui est du lancement automatique il faut créer un fichier sans extension qui contiendra:

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

Puis de mettre ce fichier dans le  répertoire /etc/init.d/ ou sous /etc/rc.d/init.d/ selon la distribution


Linux, une histoire de vi ou de more

Hors ligne

 

#13 2006-05-07 20:40:32

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

J@r0d a écrit:

Puis de mettre ce fichier dans le  répertoire /etc/init.d/ ou sous /etc/rc.d/init.d/ selon la distribution

Il faut ensuite mettre en place les liens symboliques depuis rcN.d vers init.d sinon ca démarrera rien.

man update-rc.d sous debian.

Hors ligne

 

#14 2006-05-07 20:44:57

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Super v essayer sa
Merci de votre aide

Hors ligne

 

#15 2006-05-07 20:48:15

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Il faut aussi rendre le fichier executabe non (chmod 755) ?
Et pour le man update-rc.d je tape juste sa dans la console ou il faut rajouter qqchose.
Desolé de vous embetez je debute sous debian
@+
Nono

Dernière modification par NoNo (2006-05-07 20:50:23)

Hors ligne

 

#16 2006-05-07 20:50:10

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

Il faut que ton script de démarrage soit exécutable, oui.

Pour "man update-rc.d" ca t'affiche la page de manuel où tu pourras trouver les options de la commande, pour savoir quels paramètres utiliser.

Dans ton cas, si tu as mis ton  script de démarrage est /etc/init.d/teamspeak tu peux utiliser la commande suivante (en supposant que teamspeak est un service n'ayant pas de "dépendances" spécifiques au lancement):

Code:

update-rc.d teamspeak defaults

Dernière modification par Calimero (2006-05-07 20:53:47)

Hors ligne

 

#17 2006-05-07 20:50:47

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Ok merci

Hors ligne

 

#18 2006-05-07 20:55:18

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Mais et ce que le service s'arettera au moment du shutdown  ?
Merci
@+
NoNo

Hors ligne

 

#19 2006-05-07 20:55:41

J@r0d
Administrator
Date d'inscription: 2006-05-03
Messages: 1872

Re: Lancer automatiquement un script au démarrage

Calimero a écrit:

J@r0d a écrit:

Puis de mettre ce fichier dans le  répertoire /etc/init.d/ ou sous /etc/rc.d/init.d/ selon la distribution

Il faut ensuite mettre en place les liens symboliques depuis rcN.d vers init.d sinon ca démarrera rien.

man update-rc.d sous debian.

Pourquoi faire simple quand on peu faire compliqué wink il y a aussi la possibilté de créer les liens avec un :

# chmod 755 /etc/init.d/teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc2.d/S64teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc3.d/S64teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc4.d/S64teamspeak
# ln -s /etc/init.d/teamspeak/ etc/rc5.d/S64teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc0.d/K64teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc1.d/K64teamspeak
# ln -s /etc/init.d/teamspeak /etc/rc6.d/K64teamspeak

0 arrêt du système (halt)
1 mode utilisateur unique (single user). Ce mode est utilisé généralement si vous rencontrez des problèmes avec certains services lancés au démarrage car le minimum de services sont démarrés et vous pouvez seulement vous identifier en tant qu'utilisateur root.
2 à 5 mode multi-utilisateur car sous Debian tous ces niveaux sont identiques. Ce mode vous permet de vous identifier en n'importe quel utilisateur.
6 redémarrage (reboot)

Par contre evite de lancer tes serveur en root, perso je prend l'utilisateur games, je créai un rep /home/games ou /usr/games, dedans j'y met tous mes serveur de jeux, ensuite en root et en étant dans le répertoire:

/home ou /usr  je fait un: chown 755 -R  /games
puis un chown 755 -R  games:users /games


Par la suite chacun de mes serveur sera lancé sous un screen et uniquement en utilisateur games et jamais en root.


Linux, une histoire de vi ou de more

Hors ligne

 

#20 2006-05-07 21:04:32

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

J@r0d a écrit:

Pourquoi faire simple quand on peu faire compliqué wink il y a aussi la possibilté de créer les liens avec un :

Ben s'il existe une commande qui effectue toutes les actions nécessaires, qui est recommandé par le guide de la distrib et qui me permet de faire les choses proprement en réduisant le risque de manipulations douteuses, je sais pas pourquoi, mais je préfère prendre le script officiel.

Mais je suis pas joueur. :ph34r:

Hors ligne

 

#21 2006-05-07 21:07:44

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Par contre j'ai un petit probleme au démarrage je vois bien la liste de service qui ce lance et au moment du service teamspeak il me dit que tss2server.pid existe deja et me demande si le serveur n'est pas deja lancé.
Pourtant avant de l'éteindre j'ai bien fait un stop du service et verifié que le pid n'était pas présent
@+
NoNo

Hors ligne

 

#22 2006-05-07 21:08:50

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Je crois avoir trouvé le probleme c'est que a l'arret il lance le serveur ts ^^
Comment reglé sa ?

Hors ligne

 

#23 2006-05-07 21:14:00

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Lancer automatiquement un script au démarrage

Si tu utilises le script qui exécute bêtement teamspeak sans vérifier qu'il soit invoqué pour démarrage, effectivement...

Ton script reçoit un paramètre: 'start', 'stop', 'restart'
Il doit effectuer l'action passée en paramètre et non lancer aveuglement le daemon.

Hors ligne

 

#24 2006-05-07 21:17:00

NoNo
Petit scarabé
Date d'inscription: 2006-05-07
Messages: 97

Re: Lancer automatiquement un script au démarrage

Oui le probléme c'est que dans mon fichier j'ai juste mis :
#!/bin/sh
#Lancement du serveur Teamspeak
cd /home/ts/tss2_rc2/
./teamspeak2-server_startscript start
Mais bon maintenant que j'ai supprimé les liens de rc0.d (arret) et r6.d (reboot) sa marche mais il ne se coupe pas a l'arret ou au reboot
@+
NoNo

Hors ligne

 

#25 2006-05-07 21:19:59

J@r0d
Administrator
Date d'inscription: 2006-05-03
Messages: 1872

Re: Lancer automatiquement un script au démarrage

NoNo a écrit:

Par contre j'ai un petit probleme au démarrage je vois bien la liste de service qui ce lance et au moment du service teamspeak il me dit que tss2server.pid existe deja et me demande si le serveur n'est pas deja lancé.
Pourtant avant de l'éteindre j'ai bien fait un stop du service et verifié que le pid n'était pas présent
@+
NoNo

Vu le nombre de manipulatino effectuées tout a l'heure n'aurais tu pas lancé plusieur fois le serveur ?, d'ou l'interet de lancer les serveurs dans un screen, cela permet de les récupérer très facilement, comme on est pas joueur wink va dans ton interface Webmin onglet System

http://img264.imageshack.us/img264/8641/webmin12eh.jpg

puis icone Gestionnaire de processus

http://img264.imageshack.us/img264/4692/webmib26cx.jpg



ATTENTION, le processus ne s'appel pas Teamspeak mais Server_Linux:

http://img264.imageshack.us/img264/9086/webmin38no.jpg


Linux, une histoire de vi ou de more

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson