Créer un fichier de lancement init.d


#1

Bonjour,

Je souhaite créer un fichier permettant de lancer deux applications sur mon serveur VPS avec Debian 7 (stable).

Voici quelques informations avec ces applications

Application 1 - Teamspeak 3 server
L’utilisateur “ts” doit lancer l’application située dans /home/ts/teamspeak3-server_linux-amd64 en effectuant la commande ./ts3server_minimal_runscript.sh

Application 2 - Valve server
L’utilisateur “steam” doit lancer l’application située dans var/steamcmd/csgo en effecutant la commande ./srcds_run -game csgo -console -usercon -secure -maxplayers_override 32 -tickrate 128 +sv_pure 0 +net_public_adr 62... +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust2

Merci d’avance :slightly_smiling:

NB*: ces deux applications fonctionnent dans un screen


#2

Le plus simple, ajouter tes lignes à exécuter dans [mono]/etc/rc.local[/mono] (avant le “exit 0” bien sûr)

Pour forcer l’exécution par un utilisateur particulier : [mono]su -c ‘commande’[/mono]

Si tu veux la méthode par script dans [mono]/etc/init.d[/mono], voir l’exemple fourni [mono]/etc/init.d/skeleton[/mono] et adapter.


#3

Bonjour,

Voici le script:

[code]#! /bin/sh

BEGIN INIT INFO

Provides: teamspeak

Required-Start: networking

Required-Stop:

Default-Start: 2 3 4 5

Default-Stop: S 0 1 6

Short-Description: TeamSpeak Server Daemon

Description: Starts/Stops/Restarts the TeamSpeak Server Daemon

END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="TeamSpeak Server"
NAME=ts3
USER=ts3
DIR=/home/ts3/teamspeak3-server_linux-amd64
DAEMON=$DIR/ts3server_startscript.sh
#PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

Gracefully exit if the package has been removed.

test -x $DAEMON || exit 0

cd $DIR
sudo -u ts3 ./ts3server_startscript.sh $1[/code]

Le nom du fichier est teamspeak

Voici les commandes que j’ai entré en root.

chmod 755 /etc/init.d/teamspeak update-rc.d teamspeak defaults

Le serveur devrait se lancer, mais apparemment non… Avez-vous une idée ?


#4

Je n’ai pas trop ce passage

# Gracefully exit if the package has been removed. test -x $DAEMON || exit 0
Car si ton exécutable n’existe pas il sort sans erreur (0)
Change ça avec un test (if) et une vrai sortie d’erreur (exit 1).

Après fait un

#service teamspeak #echo $?
Si ça te retourne autre chose que “0” c’est qu’il y a un problème et qu du coup il faut mettre dans ton script d’init


#5

Si tu passes par /etc/init.d/, il faut faire des fonctions start et stop, voir fichier skeleton.


#6

Merci à vous deux, ça marche :041

Je vais essayer pour mon serveur de jeu alors.