Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/10/2015, à 12:45

almandin

script lancé à l'arrêt de linux

Bonjour,
J'aimerais ajouter un script qui s'éxecute à l'arrêt de mon ordinateur (avant que l'ordinateur s'arrête).
Ce script stop openvpn qui empeche mon ordi de s'arrêter correctement en fait.

J'ai déjà essayé de mettre mon script dans init.d et un lien vers ce script dans les runlevels 0 et 6  (halt et reboot), mais ce script n'est jamais executé.

Du coup j'aimerais en savoir plus :  comment faire en sorte de lancer un script à chaque arrêt de l'ordi (halt ou reboot)

Merci d'avance smile

Hors ligne

#2 Le 07/10/2015, à 13:20

jplemoine

Re : script lancé à l'arrêt de linux

almandin a écrit :

J'ai déjà essayé de mettre mon script dans init.d et un lien vers ce script dans les runlevels 0 et 6  (halt et reboot),

Il me semble que c'est pourtant la bonne méthode...


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 07/10/2015, à 13:33

almandin

Re : script lancé à l'arrêt de linux

J'ai créé un script "stopopenvpn" dans /etc/init.d/ qui contient "#!/bin/bash killall openvpn", c'est tout, je l'ai chmod +x, puis dans /etc/rc0.d et /etc/rc6.d j'ai fait 'ln -s ../init.d/stopopenvpn K01stopopenvpn"

Si j'ai raté quelque chose je ne sais pas quoi smile

Hors ligne

#4 Le 07/10/2015, à 13:49

Watael

Re : script lancé à l'arrêt de linux

salut,

ubuntu est pas passée à systemd il y a quelques années ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 07/10/2015, à 13:56

nany

Re : script lancé à l'arrêt de linux

Bonjour,


essaye en mettant ceci comme script :

#!/bin/bash
/usr/bin/killall openvpn
exit 0

Motif : j’ai observé que la majorité des scripts présents renseignent la variable $PATH. Il y a sans doute une raison, c’est pourquoi je t’ai mis le chemin complet de killall. Ensuite, tous les scripts que j’ai regardés se termine par exit 0, donc ça ne coûte rien de le mettre aussi. wink
Sinon, j’ai pu lire qu’il était conseillé de nommer K99 pour être sûr que ce soit exécuté au bon moment. Je te conseille donc de changer tes liens K01… en K99…


Watael a écrit :

ubuntu est pas passée à systemd il y a quelques années ?

Seulement depuis la 15.04.

Dernière modification par nany (Le 07/10/2015, à 13:57)

En ligne

#6 Le 07/10/2015, à 14:47

jplemoine

Re : script lancé à l'arrêt de linux

Je vais peut-être dire des bêtises mais je crois que :
- Si ça commence par Snn, c'est bon
- Si ça commence par Knn, c'est que le script est désactivé : il n'est donc pas appelé...


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#7 Le 07/10/2015, à 14:54

nany

Re : script lancé à l'arrêt de linux

jplemoine a écrit :

Je vais peut-être dire des bêtises

Oui. tongue

Dernière modification par nany (Le 07/10/2015, à 14:55)

En ligne

#8 Le 07/10/2015, à 18:17

almandin

Re : script lancé à l'arrêt de linux

Du coup avec systemd j'ai du mal à identifier comment écrire le fichier .service, l'unité pour lancer le ExecStart à l'arrêt de la machine hmm
Un peu d'aide serez la bienvenue, j'ai déjà tenté plusieurs choses, notamment la suivante :

[Unit]
Description=Stop openvpn before shuting down
Requires=network.target
After=network.target
Before=shutdown.target
DefaultDependencies=no

[Service]
ExecStart=/home/myname/.bin/stopvpn
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target

le script stopvpn kill openvpn, j'ai activé le service avec systemctl enable monservice, mais quand je reboot/shutdown, le script n'est pas appellé hmm

Dernière modification par almandin (Le 07/10/2015, à 18:18)

Hors ligne

#9 Le 10/10/2015, à 18:49

almandin

Re : script lancé à l'arrêt de linux

Je recherche toujours de l'aide sur ce problème, je n'arrive pas à executer un script avant l'arrêt de ma machine, si quelqu'un connaît une solution, et a remarqué ce que je fais de travers, je suis preneur

merci d'avance smile

Hors ligne

#10 Le 13/11/2015, à 19:56

pfro35

Re : script lancé à l'arrêt de linux

Je suis dans la même situation. Depuis la version 15.04 je ne peux plus créer de lien avec cette formule :
ln -s etc/init.d/script/etc/rc0.d/K01script
Voici ce que je trouve comme lien : Lien (brisé) (inode/symlink).

Hors ligne

#11 Le 13/11/2015, à 20:43

mikael8349

Re : script lancé à l'arrêt de linux

J'avais eu un problème similaire l'année dernière, de mémoire il me semble qu'il ne fallait pas oublier le bloc de commentaire BEGIN INIT INFO en début de script, sans quoi j'obtenais une erreur. (faire attention au valeur donné pour les paramètres) :

#! /bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

Après, pour vous inspirer vous pouvez voir le squelette de référence fourni par votre distribution, généralement : /etc/init.d/skeleton.

Hors ligne

#12 Le 14/11/2015, à 15:43

pfro35

Re : script lancé à l'arrêt de linux

Je n'ai pas été suffisamment clair.
Jusqu'à la version 15.04 le lien se créait parfaitement avec la commande indiquée. Depuis le mois de mai cela ne fonctionne plus alors que j'en ai commencé l'emploi à la version 10.10.
Je suppose que cela est dû à des modifications apportées à cette version de Linux.
Il s'agit de lancer un programme à l'extinction de l'ordinateur que je lance manuellement depuis ... quand j'y pense.
J'avais déjà un blog de commentaires dans mon script auquel j'ai ajouté BEGIN et END mais cela n'a pas suffi.
Merci d'avoir pris le temps de faire une réponse.

Hors ligne