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

Applications, problèmes de configuration réseau
n3fertis
newbie
Messages : 3
Inscription : mar. 19 nov. 2013, 16:29

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

Message 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 ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] script start marche mais pas enable

Message 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é
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
n3fertis
newbie
Messages : 3
Inscription : mar. 19 nov. 2013, 16:29

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

Message 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.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [systemd script] start marche mais pas enable

Message 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). :|
«The following statement is not true. The previous statement is true.» :nage:
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [systemd script] start marche mais pas enable

Message 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'
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
n3fertis
newbie
Messages : 3
Inscription : mar. 19 nov. 2013, 16:29

Re: [systemd script] start marche mais pas enable

Message 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.
papa6
archer de cavalerie
Messages : 178
Inscription : mar. 08 juil. 2008, 22:40

Re: [systemd script] start marche mais pas enable

Message par papa6 »

Un 'tit « résolu » dans le titre ? :wink:
Répondre