Aller au contenu

[DSM5] Lancer un script au démarrage et à l'extinction du NAS

Featured Replies

Posté(e)

Bonjour,

Je souhaite lancer un script shell (xxx.sh) au démarrage et à l'extinction d'un NAS tournant sous DSM 5.

Sous DSM6, cette opération est simple et s'apparente à utiliser le panneau de configuration "planificateur de tâches" et à créer une "tâche déclenchée" (une pour le démarrage et une pour l'arrêt).

Cette option n'étant pas implémentée sous DSM5, il faut donc passer en lignes de commandes ... et c'est là que cela se corse.

Quelqu'un peut-il me renseigner sur la façon de procéder ?

Merci.

Modifié par tahitibub

Posté(e)
Il y a 2 heures, Mic13710 a dit :

Le planificateur de tâche existe depuis pas mal de versions et il est bien évidemment dispo avec DSM5 dans la partie système.

Les options "tache déclenchée sur événement (démarrer/éteindre) n'est apparue qu'avec DSM6

Pour les version précédentes faut mettre les mains dans le cambouis (plus exactement dans "/usr/local/etc/rc.d") et suivre ces instructions:

If you would like to run an application when the system boots up, you have to write a startup script and put it in /usr/local/etc/rc.d/. Following are some rules for the startup script:

1.  It must have the suffix “.sh”. For example, “myprog.sh”.
2.  The permission must be 755.
3.  It must have the options “start” and “stop”. When the system boots
up, it will call “myprog.sh start”; when it shuts down, it will call
“myprog.sh stop”.  

You can refer to the scripts in /usr/syno/etc/rc.d/. They are script for Synology default services.
 

Posté(e)
  • Auteur
Il y a 3 heures, Mic13710 a dit :

Le planificateur de tâche existe depuis pas mal de versions et il est bien évidemment dispo avec DSM5 dans la partie système.

Sous DSM 5 et 6, il est effectivement possible de créer une tâche planifiée (script défini par l'utilisateur / corbeille / contrôle du bip / service).

Toutefois, comme je le disais dans mon premier message, seul DSM 6 permet la création d'une tâche déclenchée (script défini par l'utilisateur).

DSM6 - Planificateur 0.png

DSM6 - Planificateur 1.png

La tâche déclenchée est liée à un évènement (démarrage ou extinction système), alors que la tâche planifiée est ... planifiée selon un jour et une heure donnés.

Pour contourner ce manque, il faut donc passer par des lignes de commandes, et je vous livre ici la solution :

 

1 - Créer un script shell contenant les instructions à exécuter au démarrage et à l'extinction (ici le lancement et l'arrêt d'un conteneur docker) et le placer, par exemple, dans /volume1/ :

 

case  $1 in
start)
         /var/packages/Docker/target/usr/bin/docker start <Nom du conteneur>
         ;;
stop)
         /var/packages/Docker/target/usr/bin/docker stop <Nom du conteneur>
         ;;
         *)
echo "Usages: $0 [start|stop]"
         ;;
esac

 

2 - Faire un "chmod 755 <nom_de_votre_script.sh>"

 

3 - Créer un fichier d'appel du script dans /etc/init/ avec une extension en ".conf"

 

start on filesystem and started docker
stop on runlevel [06]
exec /volume1/<nom_de_votre_script.sh>

 

4 - Faire un "chmod 755 /etc/init/<Nom de votre fichier en .conf>"

 

5 - Redémarrer.

 

@+

Modifié par tahitibub

Posté(e)
il y a 47 minutes, tahitibub a dit :

je vous livre ici la solution

Un poil plus compliqué que la mienne, donnée juste avant! on dépose le script, correctement nommé et chmodé, directement dans le "/usr/local/etc/rc.d/" et roule ma poule.

En plus je ne suis pas sur que cette méthode, qui ajoute un fichier dans "/etc/init" résiste au upgrades DSM (alors que le contenu de /usr/local est garanti conservé par Synology dans ces circonstances)

Modifié par CoolRaoul

Posté(e)
  • Auteur

Bonjour, et merci pour cette info. Je vais modifier mon approche en conséquence.

Posté(e)

Désolé, je n'avais pas bien compris la question. De toute manière, je n'ai pas encore installé dsm6 (et je vais encore laisser beaucoup de temps au temps avant de le faire), donc je ne sais pas ce que propose cette nouvelle version.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.