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 23/11/2018, à 11:20

LukePerp

[Résolu] Script à l'arrêt

Bonjour,
Comment exécuter un script à l'arrêt de la machine sur Ubuntu 18.04 ? J'ai consulté des solutions sur askubuntu, mais je n'ai pas réussis à l'appliquer à 18.04. Pour vous donner le contexte, sur des machines clientes d'un serveur NFS, l'arrêt des clients est très long si un dossier partagé du serveur a été monté et que le serveur est déjà arreté lors de l'arrêt des clients. C'est un problème connue des défauts du NFS, il faut juste forcer le démontage du dossier monté non fonctionnel. Mon besoin est d'exécuter cette commande à l'arrêt. Pourriez-vous m'aider svp. Merci d'avance

Dernière modification par LukePerp (Le 03/12/2018, à 20:44)


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#2 Le 23/11/2018, à 11:38

diesel

Re : [Résolu] Script à l'arrêt

Vas voir là :

systemd

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#3 Le 23/11/2018, à 12:57

LukePerp

Re : [Résolu] Script à l'arrêt

diesel83140 a écrit :

Vas voir là :

systemd

Amicalement.

Jean-Marie

J'ai lu, mais cela ne m'a pas aidé. Pourquoi tu m'as indiqué cette lecture ?


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#4 Le 23/11/2018, à 13:08

Compte supprimé

Re : [Résolu] Script à l'arrêt

Bonjour,
Perso , pour exécuter un script bash à l'arrêt de l'ordi, n'ayant pas réussi à utiliser systemd, j'avais contourné le problème en créant un nouveau bouton arrêt qui exécutait mon script avant d'éteindre l'ordi  wink

Dernière modification par Compte supprimé (Le 23/11/2018, à 13:08)

#5 Le 23/11/2018, à 13:24

bruno

Re : [Résolu] Script à l'arrêt

Salut,

Sans garantie, mais cela devrait fonctionner :

- créer un fichier /etc/systemd/system/nfs_force_umount.service contenant :

[Unit]
Description=Force unmount of NFS shares
Before=systemd-poweroff.service

[Service]
RemainAfterExit=yes
ExecStop=/chemin/vers/script/qui/force/le/demontage

[Install]
WantedBy=multi-user.target

Le script chemin/vers/script/qui/force/le/demontage doit être exécutable et appeler les exécutables avec leur chemin complet (ex: /bin/umount)

Activer le service :

sudo systemctl enable nfs_force_umount.service

EDIT : correction des dépendances pour que cela fonctionne toujours.
-------------
@diesel83140 : c'est un peu abrupt, surtout que cette documentation ne traite absolument pas du problème posé. Si ce n'est qu'effectivement il faut utiliser un service systemd.

Dernière modification par bruno (Le 03/12/2018, à 18:11)

Hors ligne

#6 Le 23/11/2018, à 17:16

diesel

Re : [Résolu] Script à l'arrêt

bruno a écrit :

@diesel83140 : c'est un peu abrupt, surtout que cette documentation ne traite absolument pas du problème posé. Si ce n'est qu'effectivement il faut utiliser un service systemd.

C'est vrai.

Je ferai mieux la prochaine fois.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#7 Le 01/12/2018, à 17:01

LukePerp

Re : [Résolu] Script à l'arrêt

bruno a écrit :

- créer un fichier /etc/systemd/system/nfs_force_umount.service contenant :

[Unit]
Description=Force unmount of NFS shares
Before=systemd-poweroff.service

[Service]
RemainAfterExit=yes
ExecStop=/chemin/vers/script/qui/force/le/demontage

[Install]
WantedBy=systemd-poweroff.service

Le script chemin/vers/script/qui/force/le/demontage doit être exécutable et appeler les exécutables avec leur chemin complet (ex: /bin/umount)

Activer le service :

sudo systemctl enable nfs_force_umount.service

Malheureusement, ça n'a pas fonctionné. J'ai suivi tes suggestions, en pointant mon script qui fais un truc simple :

/bin/echo ">>> " $(/bin/date -I"minutes") >> /home/luke/test.log

Ensuite, j'ai suivis les suggestions de ces liens, également sans succès. Je n'ai plus d'idée, pourriez-vous svp
Voici la dernière version du service utilisé :

[Unit]
Description=Force unmount of NFS shares
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/home/luke/Documents/Scripts/test.sh

[Install]
WantedBy=multi-user.target

https://unix.stackexchange.com/question … e-shutdown
https://superuser.com/questions/1016827 … th-systemd
https://bbs.archlinux.org/viewtopic.php?id=188858
https://unix.stackexchange.com/question … -at-reboot


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#8 Le 03/12/2018, à 07:49

bruno

Re : [Résolu] Script à l'arrêt

Salut,

J'ai testé le service indiqué en #5 sur une Ubuntu 18.04, il fonctionne.

EDIT : à une modification près reportée en #5.

Dernière modification par bruno (Le 03/12/2018, à 18:12)

Hors ligne

#9 Le 03/12/2018, à 07:59

LukePerp

Re : [Résolu] Script à l'arrêt

bruno a écrit :

Salut,

J'ai testé le service indiqué en #5 sur une Ubuntu 18.04, il fonctionne.

Que contient ton script de test ? Je vais essayer la même chose


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#10 Le 03/12/2018, à 09:01

metalux

Re : [Résolu] Script à l'arrêt

Bonjour,
A l'extinction, les fichiers passent en lecture seule, c'est pourquoi ton "echo" en #7 ne fonctionne pas. Il faut exécuter ton script AVANT que le système soit remonté en lecture seule pour que le "echo" puisse se faire. Si ton script doit modifier des fichiers, il faut en tenir compte.
Pour info, j'avais trouvé la réponse sur le forum anglophone, mais je n'arrive pas à remettre la main sur la discussion.
Edit: https://unix.stackexchange.com/question … e-shutdown

Dernière modification par metalux (Le 03/12/2018, à 09:12)

Hors ligne

#11 Le 03/12/2018, à 10:21

ar barzh paour

Re : [Résolu] Script à l'arrêt

j'ai moi même essayé systemd sans succès résolu
https://forum.ubuntu-fr.org/viewtopic.p … 8#p2201591

Dernière modification par ar barzh paour (Le 04/12/2018, à 10:51)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#12 Le 03/12/2018, à 12:57

LukePerp

Re : [Résolu] Script à l'arrêt

C'est franchement difficile et très peu accessible à l'utilisateur ordinaire cette histoire. Autant ubuntu a un outil GUI pour gérer les applis au démarrage, autant les solutions à l'arrêt sont compliquées. J'espère qu'ils vont améliorer ça.


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#13 Le 03/12/2018, à 15:03

bruno

Re : [Résolu] Script à l'arrêt

Le script que j'ai utilisé pour tester :

#!bin/bash

/bin/echo "Arrêt..." >> /var/log/test.log
exit 0

Il faut bien penser à activer (enable) et à lancer (start) le service avant de tester l'extinction de la machine.

Hors ligne

#14 Le 03/12/2018, à 20:43

LukePerp

Re : [Résolu] Script à l'arrêt

C'est bon, ça fonctionne. Comme j'ai fait plusieurs manip' je ne sais pas exactement ce qui avait coincé au départ. En tous cas, comme mon script était un test d'écriture sur la partition home, il fallait que le service spécifie de conserver home comme a indiqué xubu.
Voici mon service qui fonctionne, concernant mon script de test :

[Unit]
Description=Test du service à l'arret
RequiresMountsFor=/home
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=/home/luke/Documents/test.sh

[Install]
WantedBy=multi-user.target

Mon script /home/luke/Documents/test.sh contient :

/bin/echo ">>> " $(/bin/date -I"minutes") >> /home/luke/test.log

Merci à vous


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne