Bonjour,
Je cherche à faire exécuter une tâche à l'arrêt du PC avec crontab, mais je ne trouve pas la méthode. Pourtant, au démarrage du PC avec @reboot, c'est possible. Merci pour votre aide.
Bonjour,
Je cherche à faire exécuter une tâche à l'arrêt du PC avec crontab, mais je ne trouve pas la méthode. Pourtant, au démarrage du PC avec @reboot, c'est possible. Merci pour votre aide.
# A voir
Posté par nono14 (site web personnel) . Évalué à 3.
selon le système d'init
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# niveau d'init
Posté par NeoX . Évalué à 5.
rcS0 ou rcS6 selon que tu veux lancer le script à l'arret ou au reboot
et c'est alors independant de cron
# systemd
Posté par Marotte ⛧ . Évalué à 4.
À l’aide de systemd ça doit ressembler à ce qui est expliqué dans ce commentaire : https://bbs.archlinux.org/viewtopic.php?pid=1469183#p1469183
La méthode de NeoX, qui se base sur SysV, doit fonctionner car systemd maintient une couche de compatibilité avec SysV mais je dirais qu’utiliser directement systemd doit être préférable et plus pérenne.
Ce fil peut aussi te renseigner : http://unix.stackexchange.com/questions/39226/how-to-run-a-script-with-systemd-right-before-shutdown
Si je comprends bien on dit à systemd d’exécuter le script quand
le runlevella cible 'multi-user' s’arrête.[^] # Re: systemd
Posté par wismerhill . Évalué à 5.
Pas tout à fait, les unités ont toutes par défaut (il y a une option pour désactiver ce défaut) un conflit avec le target shutdown, c'est pour ça que son ExecStop sera exécuté à l'arrêt du système, mais seulement s'il a été démarré (le RemainAfterExit est là pour qu'il ne soit pas nécessaire de mettre un ExecStart qui fait une pause indéfinie).
Le WantedBy dans la section Install est seulement là pour qu'un "systemctl enable" ait poru effet que l'unité soit démarrée avec le target multi-user (donc dans tous démarrage normal).
Il faut noter que ce n'est pas tout à fait équivalent à lancer un script à l'arrêt, car tu peux arrêter l' e service avec "systemctl stop" et le script sera exécuté à ce moment-là, et plus à l'arrêt (si tu ne la redémarre pas).
Cela peut s'éviter avec l'option RefuseManualStop=true (dans la section Unit).
# ?
Posté par polll . Évalué à 1.
Je vous remercie pour vos réponses, mais pour moi, c'est du chinois. Y a pas plus simple ? Je veux juste faire exécuter un copier-coller afin de sauvegarder un fichier à l'arrêt du PC. Par exemple, lorsque je clique sur Quitter, une boîte de dialogue apparaît, ce ne serait pas possible d'ajouter à la fonction qui fait apparaître la boîte mon "cp /home/…" ?
[^] # Re: ?
Posté par nono14 (site web personnel) . Évalué à 3.
Voir avec le gestionnaire de session, en principe il y a moyen d'exécuter un script. ( postsession dans ton cas )
Perso, je le ferais pas, rsync fonctionne trés bien pour effectuer la sauvegarde même en cours d'utilisation des données.
Imagine ça dure trop longtemps à la sortie de session, tu vas croire à tord que c'est planté, et ça va être difficile de le stopper au cas où.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.