Bonjour à tous,
Voila un moment que j'utilise crontab pour lancer des scripts au moment ou je le voulais.
Pour le démarrage, j'utiliserai @reboot mais pour l’extinction PC, je sèche !
Auriez-vous des idées ? Pour Debian Bookworm.
Merci beaucoup
Bonjour à tous,
Voila un moment que j'utilise crontab pour lancer des scripts au moment ou je le voulais.
Pour le démarrage, j'utiliserai @reboot mais pour l’extinction PC, je sèche !
Auriez-vous des idées ? Pour Debian Bookworm.
Merci beaucoup
# passer par un service
Posté par eric gerbier (site web personnel) . Évalué à 6.
Pour cela, je passe par un service (system5 ou systemd) qui ne fait rien au start, et qui exécute le script demandé sur stop.
Voici par exemple un service qui exécute /usr/sbin/tomoyo-savepolicy quand la machine doit s’arrêter :
[Unit]
Description=Tomoyo savepolicy
[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/usr/sbin/tomoyo-savepolicy
StandardInput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
[^] # Re: passer par un service
Posté par Micromy (site web personnel) . Évalué à 1.
Exactement, systemd est fait pour ça, et il le fait bien.
Après on peut ajouter des dépendances entre services via des Before= / After=, mais toujours se rappeler qu'à l'arrêt du système cette logique s'inverse, les premiers seront des derniers, tout ça…
[^] # Re: passer par un service
Posté par Cyril Brulebois (site web personnel) . Évalué à 8.
Et si on inversait la logique inversée pour la (re)mettre à l'endroit ? J'ai des choses comme ça localement :
et :
Debian Consultant @ DEBAMAX
[^] # Re: passer par un service
Posté par NeoX . Évalué à 3.
sauf quand il est necessaire de conserver un ordre
tu ne demarres pas la base de données AVANT d'avoir acces à son stockage, et tu ne coupes pas sauvegement le stockage sans avoir arrété la base de données
donc
Démarrage :
= Stockage puis Base de données
Arrêt :
= Base de données puis Stockage
[^] # Re: passer par un service
Posté par Cyril Brulebois (site web personnel) . Évalué à 6.
Je ne vois pas le rapport avec la demande initiale. Ni avec ma proposition de ne pas utiliser une unité qui ne fait rien, reste en vie pendant toute la vie du système, avant de lancer des actions lorsqu'elle est stoppée (ce qui n'est pas nécessairement lors de l'arrêt/redémarrage, une typo lors d'un appel
kill
est si vite arrivée).Quoi qu'il en soit, s'il y a des dépendances et/ou un ordre à exprimer, la section
[Unit]
est faite pour cela, comme d'habitude.Debian Consultant @ DEBAMAX
[^] # Re: passer par un service
Posté par electro575 . Évalué à 2.
Merci pour vos commentaires.
J'active le service avec
systemctl enable toto.service
Est-ce suffisant pour qu'il soit pris en compte ?
Si oui, comment tester le lancement de ce service ?
systemctl start toto.service
Plus précisement, c'est un service qui appellerait le script shell d'un user avec une commande rsync.
Au sein du service, est-ce que d'utiliser un user courant bloquerait l'utilisation de rsync ?
User=mine_user
Group=mine_user
Merci pour vos retours.
[^] # Re: passer par un service
Posté par NeoX . Évalué à 3.
enable va l'autoriser à s'executer au demarrage ou à l'arret mais ne le lancera pas
start/stop va le lancer ou l'arreter
si tu viens de creer le service il faut aussi dire à systemctl qu'il a de nouveaux services a gerer avec
systemctl daemon-reload
[^] # Re: passer par un service
Posté par geegeek . Évalué à 2.
Tu peux aussi faire :
systemctl enable --now toto.service
systemctl status toto.service
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.