web-dev-qa-db-fra.com

Faire démarrer un script après une suspension dans Ubuntu 15.04 (systemd)

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?

6
RonnieDroid

Il existe deux approches parmi lesquelles choisir:

Utilisation du répertoire /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/

Utilisation des fichiers de service:

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
12
Martin Thornton

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

3
Sergiy Kolodyazhnyy