Bonjour,
dans le cadre de mon travail, je me retrouve à travailler sur un système embarqué basé sur gentoo (funtoo).
Je dois donc activer eth1 au démarrage de la machine et j'ai donc suivi ce tutorial.
J'ai donc fais les manipulations suivantes:
création du script
# cd /etc/init.d/ # ln -s netif.tmpl netif.eth1
édition du fichier de configuration
# vi /etc/conf.d/netif.eth1
ajout du script dans le runlevel par défaut
# rc-update add netif.eth1 default
maintenant, je teste mon script
# /etc/init.d/netif.eth1 start
* Network interface eth1 up ...
ça fonctionne youpie ... mais si j'arrête le service et que je lance la commande
rc
, ou que je redémarre la machine, le service n'est pas lancé. On peut noter en passant que eth0 fonctionne et démarre normalement, ce que je trouve très étrange.
rc-update voit bien le service:
# rc-update show default
local | default
netif.eth0 | default
netif.eth1 | default
netmount | default
sshd | default
syslog-ng | default
par contre, avec
rc-status
:
# rc-status default
Runlevel: default
netif.eth0 [ started ]
syslog-ng [ started ]
netmount [ started ]
sshd [ started ]
local [ started ]
Il ne voit pas eth1. Je regarde aussi ici:
# ls -l /etc/runlevels/default/
...
lrwxrwxrwx 1 root root 22 Jan 1 01:56 netif.eth0 -> /etc/init.d/netif.eth0
lrwxrwxrwx 1 root root 22 Jan 1 08:44 netif.eth1 -> /etc/init.d/netif.eth1
...
ce qui me semble correct. (oui, la machine n'est pas encore à l'heure)
Et maintenant, je ne sais plus où chercher, ai-je oublié une étape, une configuration ?
Merci pour votre aide.
# simplement
Posté par NeoX . Évalué à 1. Dernière modification le 16 janvier 2012 à 10:11.
1°) tu es dans /etc/init.d
et tu fais un ln -s netif.tmp1 netif.eth1
tu ne fais que faire un lien symbolique, tu ne crees rien.
et c'est ce lien vers netif.tmp1 qui sera executé au demarrage
2°) puis tu edites /etc/conf.d/netif.eth1
mais rien ne le relit à /etc/init.d/netif.eth1
du coup il ne sera jamais executé au demarrage de la machine.
je penses qu'il faut que tu fasses :
d'ailleurs tu dois pouvoir le verifier en faisant un
qui devrait te renvoyer
[^] # Re: simplement
Posté par Ymage . Évalué à 2.
En fait non.
Sous Funtoo/Gentoo, la convention veut que si tu t'appuies sur les fonctions natives (#!/sbin/runscript) pour créer ton lanceur de service, le fichier de démarrage de celui-ci va automatiquement charger un fichier de configuration du même nom dans /etc/conf.d/
Par ailleurs, netif.tmpl (s'il fonctionne comme net.lo pour Gentoo) est un script intelligent qui, lancé sous le nom d'un lien symbolique, est capable de chercher le bon fichier de configuration associé au nom du lien lui-même. Cela évite de copier/coller des scripts de démarrage pour charger n fois un service similaire avec une configuration différente.
Donc en principe, c'est bien /etc/init.d/netif.eth1 qui est appelé par rc, /etc/init.d/netif.tmpl qui sera au final exécuté et la configuration de /etc/conf.d/netif.eth1 qui sera effectivement chargée.
Maintenant pour en revenir au problème, y'a-t-il des erreurs dans les logs ? dmesg ?
Si vous n'aimez pas ce commentaire c'est qu'il est ironique.
[^] # Re: simplement
Posté par Julien . Évalué à -1.
C'est effectivement ce que j'avais compris :)
Ha oui, j'avais oublié de préciser, je ne trouve pas d'erreurs dans les logs.
# résolu
Posté par Julien . Évalué à 0.
J'ai enfin trouvé pourquoi ça ne marchait pas. J'avais oublié de précisé (en fait, je n'y pensais même plus) que nous travaillons sur des systèmes destinés à fonctionner dans des trains, donc interdiction d'avoir une batterie.
Quand j'ajoutais un nouveau service, le mise à jour du cache ne se faisait plus (je pense que la date de la dernière construction du cache de tous les services était dans le futur, et donc comme la date de l'ajout étant toujours antérieure, le système ne reconstruisant jamais le cache).
Il suffit donc d'exécuter
rc-update -u
pour reconstruire le cache.Merci de vos réponses :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.