Page 1 sur 1

[systemd script] start marche mais pas enable (résolu)

Publié : mar. 19 nov. 2013, 16:55
par n3fertis
Bonjour,

Désolé de vous déranger pour quelque chose qui a peut être été résolu mais je n'ai pas réussi à trouver de solution pertinente s'appliquant à mon problème par moi même.

Je veux lancer au démarrage un script avec systemd. Pour cela j'ai créé un script nommé internetControle.sh, que j'ai mis dans /usr/bin/.

Code : Tout sélectionner

#!/bin/bash
# This script shut down internet after 10 pm and enable it only after 7 am
while true; do
  hour=$( date +%k );

  if [ $hour -lt 7 ] || [ $hour -ge 22 ];
    then netcfg -a;
  fi
  sleep 60;
  done
Il s'exécute sans problème.

J'ai ensuite créé dans /etc/systemd/system/ un service nommé internetControle.txt

Code : Tout sélectionner

[Unit]
Description=Desactivate internet between specific hours

[Service]
ExecStart=/usr/bin/internetControle.sh

[Install]
WantedBy=multi.user-target
J'ai

Code : Tout sélectionner

sudo systemctl daemon-reload

Code : Tout sélectionner

sudo systemctl start internetControle

Code : Tout sélectionner

systemctl status internetControle
le statut est :

Code : Tout sélectionner

internetControle.service - Desactivate internet between specific hours
   Loaded: loaded (/etc/systemd/system/internetControle.service; disabled)
   Active: active (running) since Tue 2013-11-19 16:26:21 CET; 20min ago
 Main PID: 910 (internetControl)
   CGroup: /system.slice/internetControle.service
           |- 910 /bin/bash /usr/bin/internetControle.sh
           `-1156 sleep 60

Nov 19 16:26:21 bleuet systemd[1]: Started Desactivate internet between specific hours.
Nov 19 16:45:45 bleuet systemd[1]: Started Desactivate internet between specific hours.
Mais lorsque je demande :

Code : Tout sélectionner

sudo systemctl enable internetControle
j'obtiens :

Code : Tout sélectionner

failed to issue method call : invalid argument
Je ne comprend pas, pourriez vous m'aider ?

Re: [systemd] script start marche mais pas enable

Publié : mar. 19 nov. 2013, 17:01
par benjarobin
C'est un "bug" de systemd, essaye ceci

Code : Tout sélectionner

sudo systemctl enable internetControle.service
Sinon netcfg n'existe plus... ou n'est plus du tout supporté

Re: [systemd script] start marche mais pas enable (résolu)

Publié : mar. 19 nov. 2013, 17:41
par n3fertis
Ce que tu me proposes me donne le même résultat : Invalid argument.

j'utilise netcfg tout le temps.
D'ailleurs, je viens de vérifier : "sudo systemctl enable netcfg" marche parfaitement.

Cela m'a donné l'idée de copier mon service dans /usr/systemd/system/multi-user.target.wants (en remarquant que enable est la création d'un lien symbolique entre /usr/systemd/system/foo.service et /usr/systemd/system/multi-user.target.wants/foo.service)
Cela marche... Mais pourquoi l'option enable ne marchait pas... :|

Merci beaucoup en tout cas de m'avoir donné l'idée, je me suis arraché les cheveux pendant deux heures pour rien. :) Au moins je comprend un peu mieux ce qui se passe.

Re: [systemd script] start marche mais pas enable

Publié : mar. 19 nov. 2013, 19:46
par FoolEcho
n3fertis a écrit :j'utilise netcfg tout le temps.
D'ailleurs, je viens de vérifier : "sudo systemctl enable netcfg" marche parfaitement.
Sauf que, officiellement, c'est netctl qui lui succède (donc, à mon avis, c'est un peu scabreux de continuer avec netcfg). :|

Re: [systemd script] start marche mais pas enable

Publié : mar. 19 nov. 2013, 20:11
par oktoberfest
J'ai essayé ton script et il marche très bien... avec une petite correction :

Code : Tout sélectionner

[Install]
WantedBy=multi.user-target
devient

Code : Tout sélectionner

[Install]
WantedBy=multi-user.target

Code : Tout sélectionner

# systemctl enable InternetControle
ln -s '/etc/systemd/system/InternetControle.service' '/etc/systemd/system/multi-user.target.wants/InternetControle.service'

Re: [systemd script] start marche mais pas enable

Publié : mar. 19 nov. 2013, 23:36
par n3fertis
:D

Merci beaucoup ! J'ai pu retirer mon 'cp' bancal et avoir un lien symbolique à la place plus souple et plus dans l'esprit de systemctl. Et surtout je comprend pourquoi ça ne marchait pas. :? Je hais les erreurs de syntaxe (ce qui rend toute programmation assez rock n roll)

Pour netctl, je viens de jeter un coup d'oeil au lien pointé, je n'ai pas trop le temps de faire la transition pour l'instant. Mais je garde l'idée en tête, il y a quelques options qui me semble très sympathique, que j'envisageai d'ailleurs de faire en script de mon côté (maintenant que la porte est ouverte avec ce premier script :) )
Encore merci à tout les deux, et bonne continuation.

Re: [systemd script] start marche mais pas enable

Publié : mar. 26 nov. 2013, 12:57
par papa6
Un 'tit « résolu » dans le titre ? :wink: