script stop-start-reboot serveur CSS et CS2

Tutoriels destinés aux serveurs dédiés sous Debian.
Répondre
Avatar du membre
Papy___
Administrateur
Administrateur
Messages : 20
Enregistré le : 11 avr. 2026, 08:46
Localisation : Paris
Contact :

script stop-start-reboot serveur CSS et CS2

Message par Papy___ »

startstoprestartserv.jpg



Voyons comment installer un script stop-start-reboot serveur Counter-Strike: Source et Counter-Strike 2.
Avec ce script vous pourrez stopper, démarrer, redémarrer (reboot) votre serveur de jeux.
Je vous donnerai également la méthode pour reboot votre serveur tous les jours à heure fixe et démarrer automatiquement si votre serveur dédié vient à être reboot.

Pour commencer, sachez que je reprends les exemples donnés sur l’installation d’un serveur CSS et CS2 avec les mêmes chemins que sur le serveur dédié donc n'oubliez pas d'adapter les lignes.


Installation

Le serveur est installé dans

pour CSS

Code : Tout sélectionner

/home/papy/css/serveur1
pour CS2

Code : Tout sélectionner

/home/papy/cs2/serveur1
Vous allez créer en root un fichier dans lequel il y aura le script. Nommez-le comme vous voulez et n’insérez pas des espaces et gardez l’extension .sh

Pour CSS

Code : Tout sélectionner

nano /etc/init.d/cssserv1.sh
Pour CS2

Code : Tout sélectionner

nano /etc/init.d/cs2serv1.sh
et vous mettez ceci dedans

Pour CSS

Code : Tout sélectionner

#!/bin/sh

### BEGIN INIT INFO
# Provides:            cssserv1.sh
# Required-Start:       $network $local_fs $remote_fs dbus
# Required-Stop:    $network $local_fs $remote_fs dbus
# Should-Start:        $mysql
# Should-Stop:        $mysql
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    serveur 1 css
# Description:            script start - stop et restart serveur 1 css.
### END INIT INFO

#############################################
## Début des variables ##
#############################################

# Nom de l'utilisateur
SRCDS_USER="papy"

# Nom du screen
SRCDS_NAME="cssserv1"

# Binaire du serveur
SRCDS_BIN="./srcds_run"

# Repertoire du serveur
SRCDS_PATH="/home/papy/css/serveur1/"

# Options de lancement
SRCDS_OPTS="-game cstrike \
-tickrate 66 \
+maxplayers 24 \
+map de_dust2 \
-port 27015"

#############################################
## Fin des variables ##
#############################################
usage() {
echo "Usage: ${SRCDS_NAME} (stop|start|restart)"
exit 2
}

if [ -z $1 ]; then
usage
fi

srcds_start() {
OWD=`pwd`
cd $SRCDS_PATH
su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
cd $OWD
echo "Démarrage du serveur 1 css"
}

srcds_stop() {
su ${SRCDS_USER} -c "screen -dr ${SRCDS_NAME} -X quit"
echo "Arrêt du serveur 1 css"
}

srcds_restart() {
srcds_stop
srcds_start
echo "Serveur 1 css reboot"
}


case $1 in
stop)
srcds_stop
;;
start)
srcds_start
;;
restart)
srcds_restart
;;
*)
usage
esac

exit 0
Voici ce que vous devez changer et adapter
modifier le nom du fichier du script en mettant celui que vous avez choisis

Code : Tout sélectionner

# Provides:            cssserv1.sh
modifiez les 2 lignes suivantes

Code : Tout sélectionner

# Short-Description:    serveur 1 css
# Description:            script start - stop et restart serveur 1 css.
mettez le user qui gère votre serveur, celui qui vous a servi lors de l’installation.

Code : Tout sélectionner

SRCDS_USER="papy"
pour éviter de vous perdre dans de multiples scripts si vous avez plusieurs serveurs, mettez le nom du fichier qui est normalement en rapport avec votre serveur.

Code : Tout sélectionner

SRCDS_NAME="cs2serv1"
le chemin dans lequel est le binaire css

Code : Tout sélectionner

SRCDS_PATH="/home/papy/css/serveur1/"
toute la partie suivante définit vos options de lancement de serveur. Dans cet exemple je lance le serveur sur le port 27015 en tick 66 avec 24 slots et la map de démarrage est de_dust2.
Donc en fonction du serveur que vous voulez faire vous devez mettre les bonnes infos.
Vous constaterez qu’à la fin de chaque ligne il y a un espace et \. Il n’y a que sur la dernière option que vous n’en mettez pas et par contre il y a un " donc faites bien attention. Si vous ajoutez ou retirez des options faites très attention à ceci.

Code : Tout sélectionner

# Options de lancement

SRCDS_OPTS="-game cstrike \
-tickrate 66 \
+maxplayers 24 \
+map de_dust2 \
-port 27015"
Pour la suite du script repérez Démarrage du serveur 1 css Stopper ou encore relancez et vous pouvez modifier le texte et mettre ce que vous voulez. Toutefois attention aux mots avec des accents je ne sais pas si ça fonctionne et ça m’étonnerait.

Lorsque le fichier est terminé et après avoir vérifié que tout est bon vous pouvez le fermer en faisant le manipulation de touche suivante ctrl + x ensuite la touche « o » ou « y » selon si vous avez mis en FR (o = oui) ou en EN (y = yes=) et pour finir la touche Entrée.
Je vous montre maintenant pour CS2 mais sans revenir sur tout le détails, vous devrez faire la même chose. Voici le script

Code : Tout sélectionner

#!/bin/sh

### BEGIN INIT INFO
# Provides:            cs2serv1.sh
# Required-Start:       $network $local_fs $remote_fs dbus
# Required-Stop:    $network $local_fs $remote_fs dbus
# Should-Start:        $mysql
# Should-Stop:        $mysql
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    serveur 1 cs2
# Description:            script start - stop et restart serveur 1 cs2.
### END INIT INFO

#############################################
## Début des variables ##
#############################################

# Nom de l'utilisateur
SRCDS_USER="papy"

# Nom du screen
SRCDS_NAME="cs2serv1"

# Binaire du serveur
SRCDS_BIN="./cs2"

# Repertoire du serveur
SRCDS_PATH="/home/papy/cs2/serveur1/game/bin/linuxsteamrt64/"

# Options de lancement
SRCDS_OPTS="-dedicated \
+game_alias casual \
+game_mode 0 \
+game_type 0 \
-usercon \
-maxplayers 16 \
+map de_dust2 \
-port 27015 \
-secure \
+sv_setsteamaccount XXXXXXXXXXXXXXXXXXXXXXXX"

#############################################
## Fin des variables ##
#############################################
usage() {
echo "Usage: ${SRCDS_NAME} (stop|start|restart)"
exit 2
}

if [ -z $1 ]; then
usage
fi

srcds_start() {
OWD=`pwd`
cd $SRCDS_PATH
su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
cd $OWD
echo "Démarrage du serveur 1 cs2"
}

srcds_stop() {
su ${SRCDS_USER} -c "screen -dr ${SRCDS_NAME} -X quit"
echo "Arrêt du serveur 1 cs2"
}

srcds_restart() {
srcds_stop
srcds_start
echo "Serveur 1 cs2 reboot"
}


case $1 in
stop)
srcds_stop
;;
start)
srcds_start
;;
restart)
srcds_restart
;;
*)
usage
esac

exit 0
fermez et sauvegardez
maintenant vous changez les droits d’accès au fichier avec la commande

Code : Tout sélectionner

pour CSS
chmod 755 /etc/init.d/cssserv1.sh

pour CS2
chmod 755 /etc/init.d/cs2serv1.sh
ensuite vous tapez ceci

Code : Tout sélectionner

cd /usr/sbin
puis vous tapez la commande suivante

Code : Tout sélectionner

pour CSS
ln -s /etc/init.d/cssserv1.sh cssserv1

pour CS2
ln -s /etc/init.d/cs2serv1.sh cs2serv1
le dernier cssserv1 ou cs2serv1 est la commande que vous taperez pour exécuter les actions de stop|start|reboot de votre serveur.
Lorsque vous serez connecté sur votre serveur dédié il vous suffira de taper
  • cssserv1 ou cs2serv1 start = pour démarrer votre serveur.
  • cssserv1 ou cs2serv1 restart = pour redémarrer votre serveur. (reboot)
  • cssserv1 ou cs2serv1 stop = pour stopper votre serveur.
Votre script est maintenant prêt.
Voyons maintenant le démarrage automatique du serveur en cas de reboot du serveur dédié.


Démarrage automatique du serveur en cas de reboot du serveur dédié

Pour se faire vous tapez

Code : Tout sélectionner

cd /etc/init.d/
puis vous tapez ceci en modifiant le nom et en mettant le nom de votre fichier bien évidemment

Code : Tout sélectionner

pour CSS
update-rc.d cssserv1.sh defaults

pour CS2
update-rc.d cs2serv1.sh defaults
si vous voulez retirer cette fonction vous tapez

Code : Tout sélectionner

pour CSS
update-rc.d -f cssserv1.sh remove

pour CS2
update-rc.d -f cs2serv1.sh remove

Reboot journalier

Si vous voulez redémarrer tous les jours votre serveur (conseillé) il faut que crontab soit installé sur votre serveur dédié.
S’il n’est pas déjà installé faites-le avec la commande suivante

Code : Tout sélectionner

apt install cron -y
ensuite vous tapez

Code : Tout sélectionner

crontab -e
Si vous tapez cette commande pour la 1ère fois il se peut que vous ayez un choix à faire entre différentes options et vous devrez tapez 1 2 3 … selon l’option choisie puis valider avec la touche Entrée. Choisissez la ligne où sa met /sbin/nano et ensuite il vous affiche le contenu du crontab.
Vous allez tout en bas et vous mettez cette ligne

Code : Tout sélectionner

pour CSS
30 7 * * * /etc/init.d/cssserv1.sh restart

pour CS2
30 7 * * * /etc/init.d/cs2serv1.sh restart
cette ligne indique que tous les jours à 7h30 il fera un reboot du serveur.
Pour mieux comprendre le fonctionnement et les possibilités :
je pars de la gauche vers la droite donc vous compterez les *
  • 30 = ce sont les minutes de 0 à 59.
  • 7 = ce sont les heures de 0 à 23.
  • * = c’est le jour du mois entre 1 et 31.
  • * = c’est le mois de l’année entre 1 et 12.
  • * = c’est le jour de la semaine qui va de 0 (dimanche) à 6.
  • /etc/init.d/cssserv1.sh ou /etc/init.d/cs2serv1.shrestart = la commande qui sera exécuté.
si vous laissez les jours, mois etc. en * ce sera exécuté tous les jours.

Exemples :
Vous voulez reboot votre serveur 1 fois par semaine le lundi à 7h30, dans ce cas la ligne sera

Code : Tout sélectionner

pour CSS
30 7 * * 1 /etc/init.d/cssserv1.sh restart

pour CS2
30 7 * * 1 /etc/init.d/cs2serv1.sh restart
Si vous ne voulez pas un reboot journalier mais plutôt le lundi et le vendredi à 7h30, ce sera

Code : Tout sélectionner

pour CSS
30 7 * * 1,5 /etc/init.d/cssserv1.sh restart

pour CS2
30 7 * * 1,5 /etc/init.d/cs2serv1.sh restart
vous pouvez vraiment moduler comme vous le voulez. Toutefois attention à respecter les espaces entre chaque valeur.
Votre script stop-start-reboot serveur Counter-Strike:Source ou Counter-Strike 2 est installé. Désormais toute cette partie est automatisée.
Répondre