CTKArch · Forums
You are not logged in. Please Register or Login.  |  Search
Posted: Dec 03, 2011 10:12:03 pm
salan54
icon



Bonjour,

J'ai récemment découvert minidlna et l'ai installé sur ma CtkArch : version installée désormais en standard (et non en Live).
Lorsque je lance minidlna depuis la ligne de commande, tout fonctionne parfaitement :

Quote:
[salan54@ctkarch ~]$ sudo /etc/rc.d/minidlna start
:: Starting minidlna                                                                    [DONE]




J'ai donc essayé de mettre minidlna dans la ligne de daemons de /etc/rc.conf afin que le serveur dlna démarre automatiquement au boot :
Quote:
DAEMONS=(syslog-ng dbus wicd alsa hwclock ntpd minidlna)



J'obtiens alors un message d'erreur au boot (/var/log/boot) et minidlna ne se lance pas :
Quote:
Sat Dec  3 22:36:53 2011: :: Starting minidlna ^[[201G  [BUSY] Interface eth0 not found, ignoring.
Sat Dec  3 22:36:54 2011: [2011/12/03 22:36:54] minidlna.c:757: No IP address automatically detected!
Sat Dec  3 22:36:54 2011: ^[[201G  [FAIL]




minidlna ne détecte apparemment pas l'interface eth0 à cette phase...

Initialement, j'avais ...@wicd... dans les daemons, j'ai oté le @ en pensant que peut être mon interface eth0 n'était pas encore up quand minidlna se lancait... mais ça ne change rien.

Je me demande donc s'il ne faut pas mettre le daemon ...network... ou rajouter quelque chose dans les préférences de wicd, mais je suis un peu sec  ;) 

Auriez-vous une idée ?
Cordialement,
Salan54

PS: Désolé pour le titre du topic, c'était "Failing to start minidlna" et non mindlna...  (R) 
Posted: Dec 04, 2011 11:00:35 am
Cereal-Killer
icon



je crois que le daemon wicd renvoie DONE même si l'adresse ip n'est pas encore obtenue, donc mettre un "@" ou pas, ça devrait rien changer à ton problème...
l'idée serait de caser un "wait 5" quelquepart, mais je sais pas si ce serait propre de le faire dans etc/rc.d/minidlna (et dans rc.conf, je vois aucune option permettant de retarder le chargement d'un daemon).

donc au pire, dans etc/rc.d/minidlna, tu pourrais faire ça:
BASH Code:
case "$1" in
  start)
    wait 5;
    stat_busy "Starting minidlna"
    [ -z "$PID" ] && su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
    if [ $? -gt 0 ]; then
      stat_fail
    else
      add_daemon minidlna
      stat_done
    fi
    ;;

(j'ai juste ajouté le "wait 5" qui devrait laisser le temps à Wicd d'obtenir le bail DHCP)
mais attend peut-être que Calimero vienne te donner son avis là-dessus, il te trouvera sans doute quelquechose de plus clean...
Posted: Dec 04, 2011 2:07:12 pm
salan54
icon



Merci cereal-killer pour ce début de réponse,

En fait, j'ai continué de me creuser la tête et, au lieu, d'imaginer que minidlna était dans le coup, je me suis dit que ma configuration réseau n'était pas bonne. Effectivement, c'était le cas. En comparant mon rc.conf avec le rc.conf.pacnew, je me suis rappelé que depuis quelques mois, la syntaxe de la section NETWORKING avait quelque peu changé et que je n'avais pas mis à jour mon rc.conf depuis l'installation de CTKARCH 0.7 sur cette machine... Pas bien  (wallbash) 

Bref, en rectifiant comme il se doit la section NETWORKING :
Quote:
interface=eth0
address=
netmask=
broadcast=
gateway=




Et en plaçant minidlna en dernière position des DAEMONS, ça marche au poil...

Quote:
DAEMONS=(syslog-ng dbus wicd openntpd alsa !hwclock crond minidlna)



A noter pour ceux qui s'intéressent à minidlna qu'il y a tout de même quelques adaptations à faire sur les droits de certains répertoires. Voir ce thread que j'avais initié sur le forum archlinux.fr : forums.archlinux.fr/topic9502.html

On peut mettre "résolu" dans le titre et désolé du dérangement... Merci encore,
Salan54
Posted: Dec 04, 2011 6:04:08 pm
Calimero
icon



Non, tu n'as rien résolu du tout.
La section networking de rc.conf n'est pas utilisée si network n'est pas dans les daemons.
Et tu utilises wicd, pas network, donc.

C'est juste par "hasard" que ça a fonctionné cette fois : le DHCP a été plus rapide à obtenir c'est tout, donc au moment où minidlna s'est lancé ce coup-ci tu avais déjà une IP.

Cereal, la commande wait 5 attend la terminaison du processus de PID 5, ce que tu as écrit est donc n'importe quoi.
Tu confonds avec sleep ; mais même un sleep 5 ce serait une solution odieusement crade.

Une possibilité serait d'enlever minidlna des daemons et mettre ceci dans /etc/rc.local :
while ! /etc/rc.d/minidlna start;do sleep 2;done &

Ainsi, la boucle va retenter le lancement s'il échoue. Il aurait fallu attendre que l'interface aie une ip mais sais po faire.
Posted: Dec 04, 2011 6:50:01 pm
Cereal-Killer
icon



"Cereal, la commande wait 5 attend la terminaison du processus de PID 5, ce que tu as écrit est donc n'importe quoi.
Tu confonds avec sleep ; mais même un sleep 5 ce serait une solution odieusement crade."

c'est bien pour ça que j'avais dit d'attendre que tu passes par là: ça me semblait pas très propre de modifier un script dans /etc/rc.d (et en plus je me gourre de commande)... :(
Posted: Dec 11, 2011 1:49:25 pm
salan54
icon



Bonjour,

Je n'ai relu qu'aujourd'hui le fil de ce forum car je n'utilise cette machine que les weekends. Je ne peux que confirmer qu'à chaque re-démarrage, minidlna démarre sans message d'erreur... donc, dans un sens, ça me satisfait même si ce n'est que le fruit d'un heureux hasard et si "je n'ai rien résolu du tout"  ;)

Merci en tous cas pour vos réponses. Je garde sous le coude la solution de calimero consistant à mettre le démarrage de minidlna dans /etc/rc.local . Et merci pour la précision sur le daemon "network" et les lignes de la section networking. J'ai appris quelque-chose et je vais donc me replonger dans la doc.
Posted: Feb 24, 2012 11:00:51 pm
salan54
icon



Bonsoir,

Je relance ce thread car je me retrouve devant le même problème sur une autre machine sur laquelle j'ai installé arch et minidlna... J'ai donc repensé à la suggestion de Calimero et modifié mon rc.local en conséquence :
PHP Code:
#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
while !/etc/rc.d/minidlna start;do sleep 2;done &


Mais, il y a apparemment un souci :
PHP Code:
$tail /var/log/boot
Fri Feb 24 21:39:28 2012: /etc/rc.local: line 6: !/etc/rc.d/minidlna: No such file or directory


J'ai tout essayé pour faire accepter cette ligne (je précise que /etc/rc.d/minidlna existe bien) en ajoutant des apostrophes, parenthèses, crochets un peu partout... mais ça ne passe pas. Ce doit être du bash assez basique mais je merde lamentablement et vient humblement solliciter une solution  (confused) 

Merci d'avance.
Posted: Feb 24, 2012 11:11:35 pm
Calimero
icon



Ce serait oublier que ma suggestion était while ! /etc/rc.d/minidlna start;do sleep 2;done &

Je te laisse trouver l'espace que tu as oublié.
Posted: Feb 25, 2012 10:38:51 am
salan54
icon



Merci Calimero,

C'était en effet oublier ce précieux espace...
Ma seule excuse était de ne disposer que d'une souris sans bouton central et de ne pas pouvoir faire du copier/coller avec urxvt. J'ai donc recopié... mal ;-)

Je peux donc confirmer qu'avec ta suggestion, minidlna se lance désormais correctement lors du boot. Merci encore.
Powered by myUPB v2.2.7  ·   Creative Commons License PHP Outburst