# Converstion script init.d en systemd

**URL:** <https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674>\
**Category:** Programmation\
**Created:** [Mai 20, 2016, 9:41 UTC](https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674 "2016-05-20T09:41:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexpl0sif](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/49beb7/32.png) [@alexpl0sif](https://www.debian-fr.org/u/alexpl0sif)\
**Post date:** [Mai 20, 2016, 9:41 UTC](https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674/1 "2016-05-20T09:41:45Z")

</div>

Bonjour,

Je tente de convertir le script de démarrage sous systemd. Mais pas beaucoup de doc à ce sujet en français.

Ancien fichier :

> !/bin/sh
> 
> USER=«&nbsp;teamspeak&nbsp;»  
> DIR=«&nbsp;/usr/local/teamspeak/teamspeak3-server\_linux-x86&nbsp;»
> 
> case «&nbsp;$1&nbsp;» in  
> start)  
> su $USER -c «&nbsp;/usr/bin/exagear – ${DIR}/ts3server\_startscript.sh start&nbsp;»  
> ;;  
> stop)  
> su $USER -c «&nbsp;/usr/bin/exagear – ${DIR}/ts3server\_startscript.sh stop&nbsp;»  
> ;;  
> restart)  
> su $USER -c «&nbsp;/usr/bin/exagear – ${DIR}/ts3server\_startscript.sh restart&nbsp;»  
> ;;  
> status)  
> su $USER -c «&nbsp;/usr/bin/exagear – ${DIR}/ts3server\_startscript.sh status&nbsp;»  
> ;;  
> \*)  
> echo «&nbsp;Usage: {start|stop|restart|status}&nbsp;» \>&2  
> exit 1  
> ;;  
> esac  
> exit 0

Nouveau :

> [Unit]  
> Description=TeamSpeak 3 Server  
> After=network.target  
> [Service]  
> WorkingDirectory=/usr/local/teamspeak/teamspeak3-server\_linux-x86/  
> User=teamspeak  
> Group=teamspeak  
> Type=forking  
> ExecStart=/usr/bin/exagear – /usr/local/teamspeak/teamspeak3-server\_linux-x86/ts3server\_startscript.sh start  
> ExecStop=/usr/bin/exagear – /usr/local/teamspeak/teamspeak3-server\_linux-x86/ts3server\_startscript.sh stop  
> ExecReload=/usr/bin/exagear – /usr/local/teamspeak/teamspeak3-server\_linux-x86/ts3server\_startscript.sh restart  
> PIDFile=/usr/local/teamspeak/teamspeak3-server\_linux-x86/ts3server.pid  
> RestartSec=15  
> Restart=always  
> [Install]  
> WantedBy=multi-user.target

Une âme charitable peut me dire si la syntaxe est bonne?

Merci d’avance,  
Alexis

---

<div class="post-metadata">

**Author:** ![severian](https://www.debian-fr.org/user_avatar/www.debian-fr.org/severian/32/4179_2.png) [@severian](https://www.debian-fr.org/u/severian)\
**Post date:** [Mai 20, 2016, 10:10 UTC](https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674/2 "2016-05-20T10:10:29Z")

</div>

je vais peut être dire des bêtises 😛  
(précision inutile puisque je ne suis pas du tout informaticien 😛)

le script de base est appelé par “init” et on doit lui dire comment ça fonctionne (start/stop/…)

systemd connaît déjà les commandes start/stop/… donc tu n’as pas besoin de lui redonner

je me base sur cet exemple (lm-sensors)  
le script init.d

```auto
#!/bin/sh

### BEGIN INIT INFO
# Provides: lm-sensors
# Required-Start: $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: lm-sensors
# Description: hardware health monitoring
### END INIT INFO

. /lib/lsb/init-functions

[-f /etc/default/rcS] && . /etc/default/rcS
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PROGRAM=/usr/bin/sensors

test -x $PROGRAM || exit 0

case "$1" in
  start)
    log_begin_msg "Setting sensors limits"
    if ["$VERBOSE" = "no"]; then
        /usr/bin/sensors -s 1> /dev/null 2> /dev/null
        /usr/bin/sensors 1> /dev/null 2> /dev/null
    else
        /usr/bin/sensors -s
        /usr/bin/sensors > /dev/null
    fi
    log_end_msg 0
    ;;
  stop)
    ;;
  force-reload|restart)
    $0 start
    ;;
  status)
    exit 0
    ;;
  *)
    log_success_msg "Usage: /etc/init.d/lm-sensors {start|stop|restart|force-reload|status}"
    exit 1
esac

exit 0

```

le service systemd (carément plus simple 😉

```auto
[Unit]
Description=Initialize hardware monitoring sensors

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=-/usr/bin/sensors -s
ExecStart=-/usr/bin/sensors

[Install]
WantedBy=multi-user.target

```

après je ne connais pas **/usr/bin/exagear** ni le contenu de **ts3server\_startscript.sh**

mais c’est intéressant comme démarche (pour mieux comprendre systemd) 🙂

(re-précisions : c’est basé plus sur ma compréhension que sur de réelles connaissances 🙂)

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mai 20, 2016, 7:59 UTC](https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674/3 "2016-05-20T19:59:43Z")

</div>

La Doc arch est bien faite

[https://wiki.archlinux.fr/Systemd](https://wiki.archlinux.fr/Systemd)

Si le `systemctl enable` passe ça ira peut-être

---

<div class="post-metadata">

**Author:** ![papajoker](https://www.debian-fr.org/user_avatar/www.debian-fr.org/papajoker/32/4465_2.png) [@papajoker](https://www.debian-fr.org/u/papajoker)\
**Post date:** [Juin 2, 2016, 9:34 UTC](https://www.debian-fr.org/t/converstion-script-init-d-en-systemd/69674/4 "2016-06-02T09:34:38Z")

</div>

bonjour,

tu peux [t’inspirer](https://aur.archlinux.org/cgit/aur.git/tree/?h=teamspeak3-server) des “paquets” archlinux puisqu’ils sont avec un fichier .service  
ici ils utilisent 2 fichiers, le [2eme](https://aur.archlinux.org/cgit/aur.git/tree/teamspeak3-server.default?h=teamspeak3-server) est un fichier environnement passé à la commande
