Page 1 sur 1

[RESOLU][systemd] Script qui ne se lance pas au démarrage

Publié : sam. 19 juil. 2014, 19:16
par epotto
Bonjour,

Voila j'ai un petit problème avec systemd j'ai crée un service qui a besoin du réseau pour se démarrer,
le service doit exécuter un script qui configure un point d'accès wifi mais celui-ci ne se lance pas...

Voici mon service AP.service placé dans /etc/systemd/system :

Code : Tout sélectionner

[Unit]
Description=Demarrage wifi, hostapd et dhcp sur wlan0
Wants=network.target
After=network.target
BindsTo=sys-subsystem-net-devices-${interface}.device
After=sys-subsystem-net-devices-${interface}.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/script_ap.sh

[Install]
WantedBy=multi-user.target
J'ai bien lancé la commande pour l'activé :

Code : Tout sélectionner

systemctl enable /etc/systemd/system/AP.service
Le service est bien lancé au démarrage :

Code : Tout sélectionner

[root@alarmpi ~]# systemctl list-units -t service --all
  UNIT                       LOAD      ACTIVE   SUB     DESCRIPTION
  AP.service                 loaded    active   exited  Demarrage wifi, hostapd
Pourtant le script ne s'est pas lancé, ce que je ne comprends pas c'est que j'avais fait exactement la même chose,
il me semble la derrnière fois et ça marché bien.
Deuxième chose c'est que quand je lance un restart sur le service ça se lance correctement :

Code : Tout sélectionner

systemctl restart AP.service
Si quelqu'un peut m’éclairé par ce que la je sèche...

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : sam. 19 juil. 2014, 21:33
par FoolEcho
Salut,

Faudrait aussi savoir ce que fait ton script (qui, à tout hasard, est bien exécutable et fonctionnel hors service ?) et les traces laissées dans le journal du service (systemctl status AP.service).
Si ça impacte le réseau, peut-être vérifier que tu n'as pas un autre service réseau qui fait conflit sur l'interface donnée...

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : sam. 19 juil. 2014, 23:21
par epotto
Salut alors oui le script est bien exécutable, et fonctionne sans problème quand je le lance hors service.

voila le script :

Code : Tout sélectionner

#!/bin/bash
# Script de démarrage du point accès Wifi

# Attribution de IP du point d'accès et la route de diffusion
ifconfig wlan0 192.168.2.254 netmask 255.255.255.0 up
route add -host 255.255.255.255 dev wlan0

# Lancement hostapd en arrière plan (-B)
hostapd -B /etc/hostapd/hostapd.conf

# Lancement du serveur dhcp pour les clients Wifi
dhcpd -cf /etc/dhcpd.conf

# Activation du partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Ce que me retourne systemctl status AP.service :

Code : Tout sélectionner

* AP.service - Demarrage wifi, hostapd et dhcp sur wlan0
   Loaded: loaded (/etc/systemd/system/AP.service; enabled)
   Active: active (exited) since Wed 1969-12-31 17:00:11 MST; 44 years 6 months     ago
  Process: 116 ExecStart=/root/script_ap.sh (code=exited, status=0/SUCCESS)
 Main PID: 116 (code=exited, status=0/SUCCESS)

Dec 31 17:00:10 alarmpi dhcpd[162]: Wrote 1 leases to leases file.
Dec 31 17:00:10 alarmpi script_ap.sh[116]: Wrote 1 leases to leases file.
Dec 31 17:00:11 alarmpi script_ap.sh[116]: Not configured to listen on any i...!
Dec 31 17:00:11 alarmpi script_ap.sh[116]: If you think you have received th...r
Dec 31 17:00:11 alarmpi script_ap.sh[116]: than a configuration issue please...g
Dec 31 17:00:11 alarmpi script_ap.sh[116]: bugs on either our web page at ww...e
Dec 31 17:00:11 alarmpi script_ap.sh[116]: before submitting a bug.  These p...r
Dec 31 17:00:11 alarmpi script_ap.sh[116]: process and the information we fi....
Dec 31 17:00:11 alarmpi script_ap.sh[116]: exiting.
Dec 31 17:00:11 alarmpi systemd[1]: Started Demarrage wifi, hostapd et dhcp...0.
Hint: Some lines were ellipsized, use -l to show in full.

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : dim. 20 juil. 2014, 07:28
par waitnsea
Bonjour,
Il y a des services type "wait-on-line" en sus de Network-Manager ou de systemd-network, une piste ?

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : dim. 20 juil. 2014, 13:39
par epotto
Problème partiellement résolu, j'ai ajouté dans mon script un ping 127.0.0.1 -c 5
Et maintenant il se déroule correctement. C'est un peut du bricolage mais bon...

Du coup ça doit venir du fait que le service est lancé trop tôt ou quelque chose dans le genre.
Je voudrais bien comprendre de quoi ça vient. Toute explication est la bienvenue !

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : dim. 20 juil. 2014, 14:39
par benjarobin
Oui corriger le service...

Code : Tout sélectionner

[Unit]
Description=Demarrage wifi, hostapd et dhcp sur wlan0
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/script_ap.sh

[Install]
WantedBy=multi-user.target
Sinon si cela ne fonctionne toujours pas, quelle est la sortie de :

Code : Tout sélectionner

systemctl status -l AP.service
cat /etc/dhcpd.conf

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : dim. 20 juil. 2014, 14:56
par epotto
Merci benjarobin pour ta réponse tout fonctionne maintenant, ça venait bien du service.
Bonne journée a tous !

Re: [systemd] Script qui ne se lance pas au démarrage

Publié : dim. 20 juil. 2014, 15:05
par benjarobin
:resolu: