J'ai un script qui démarre ma connexion haut débit au démarrage et je souhaite le faire démarrer à la reprise de la suspension.
Mon script est /usr/local/bin/start_my_connection
il contient:
#!/bin/sh
sleep 10
nmcli nm wwan on
nmcli con up id "reber connection"`
Que dois-je faire pour le faire fonctionner en utilisant systemd
?
Il existe deux approches parmi lesquelles choisir:
/lib/systemd/system-sleep/
:Créez un autre script appelé 00start_my_connection
:
#!/bin/sh
if [ $1 = post ] && [ $2 = suspend ]
then /usr/local/bin/start_my_connection
fi
$1
est "post" sur resume/thaw et "pre" sinon. Dans les deux cas, $2
contient "suspend", "hibernate" ou "hybrid-sleep". Si vous souhaitez que le script soit également exécuté à la suite du passage en veille prolongée, omettez && [ $2 = suspend ]
.
Assurez-vous que ce script est exécutable à l'aide de chmod a+x 00start_my_connection
Déplacez ce script dans /lib/systemd/system-sleep/
en utilisant
Sudo mv 00start_my_connection /lib/systemd/system-sleep/
Créez le fichier /etc/systemd/system/start_my_connection.service
:
[Unit]
Description=Run start_my_connection
After=suspend.target
#After=hibernate.target
#After=hybrid-sleep.target
[Service]
ExecStart=/usr/local/bin/start_my_connection
[Install]
WantedBy=suspend.target
#WantedBy=hibernate.target
#WantedBy=hybrid-sleep.target
Supprimez la mise en commentaire de toutes les lignes si vous souhaitez également que le script s'exécute après la mise en veille prolongée. Puis installez le fichier de service avec:
Sudo systemctl enable start_my_connection.service
Créez un fichier 01myscript
dans le répertoire /etc/pm/sleep.d/
.
Le contenu de ce fichier devrait être:
#!/bin/bash
case $1 in
thaw|resume) /usr/local/bin/start_my_connection
;;
esac
Rendre ce script exécutable: Sudo chmod +x /etc/pm/sleep.d/01myscript
.
Essayez de suspendre