Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2015, à 12:31

grandtoubab

(resolu)Minidlna comment retarder son démarrage?

Bonjour,
Les médias à lire sont sur un disque usb.
Je souhaite retarder le démarrage de minidlna pour que le disque usb soit monter et prêt à être explorer.
Actuellement après un reboot je suis obligé de faire sudo service minidlna restart pour qu'il prenne en compte le disque usb.
Comment faire pour retarder le démarrage de minidlna lors du reboot de la machine?

Dernière modification par grandtoubab (Le 04/04/2015, à 12:23)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#2 Le 03/04/2015, à 13:59

erresse

Re : (resolu)Minidlna comment retarder son démarrage?

Salut,
As-tu essayé dans la commande de lancement au démarrage de faire précéder l'appel de minidlna par une commande "sleep nn" (Voir le man de sleep pour les détails de paramétrage) ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 03/04/2015, à 15:15

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

erresse a écrit :

Salut,
As-tu essayé dans la commande de lancement au démarrage de faire précéder l'appel de minidlna par une commande "sleep nn" (Voir le man de sleep pour les détails de paramétrage) ?

oui mais ça ne donne rien, sur la télé je ne vois pas les médias du disque usb, seulement ceux du disque dur

root@desktop:# cat /etc/init.d/minidlna
#!/bin/sh
#
# MiniDLNA initscript
#
# Based on the mediatomb debian package.
# Original authors: Tor Krill <tor@excito.com>
#                   Leonhard Wimmer <leo@mediatomb.cc>
#                   Andres Mejia <mcitadel@gmail.com>
#
# Modified by: Benoît Knecht <benoit.knecht@fsfe.org>
#
### BEGIN INIT INFO
# Provides:          minidlna
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start minidlna at boot time
# Description:       Manage the minidlna daemon, a DLNA/UPnP-AV media server.
### END INIT INFO

unset USER

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="DLNA/UPnP-AV media server"
NAME=minidlna
DAEMON=/usr/bin/minidlnad
PIDDIR=/run/$NAME
PIDFILE=$PIDDIR/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DEFAULT=/etc/default/$NAME

# Exit if the package is not installed
[ -x $DAEMON ] || exit 0

# Read configuration variable file if it is present
[ -r $DEFAULT ] && . $DEFAULT
# Tempo pour attendre le disque usb
sleep 180
#
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

par contre ce commentaire m'interpelle:
PATH should only include /usr/* if it runs after the mountnfs.sh script


En fait je veux conditionner minidlna au montage du disque usb qui s'appelle Elements, c'est le service media-user-Elements.mount

root@ubuntu-desktop:~# systemctl status media-user-Elements.mount
● media-user-Elements.mount - /media/user/Elements
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since ven. 2015-04-03 12:51:44 CEST; 3h 58min ago
    Where: /media/user/Elements
     What: /dev/sdb1

mais je ne sais pas écrire la ligne de test du genre

 if systemctl status media-user-Elements.mount = "active"

ou

do while systemctl status media-user-Elements.mount /= "active" then wait

Dernière modification par grandtoubab (Le 03/04/2015, à 15:58)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#4 Le 03/04/2015, à 16:51

erresse

Re : (resolu)Minidlna comment retarder son démarrage?

Pour une boucle d'attente avec while, la syntaxe serait :

while `systemctl status media-user-Elements.mount` != "active"
do
    sleep 30  # suspend par tranche de 30 sec tant qu'on n'a pas "active"
done

Si tant est que ta commande (systemctl) renvoie effectivement "active" quand le montage est effectué, bien sûr...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#5 Le 03/04/2015, à 18:56

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

erresse a écrit :

Pour une boucle d'attente avec while, la syntaxe serait :

while `systemctl status media-user-Elements.mount` != "active"
do
    sleep 30  # suspend par tranche de 30 sec tant qu'on n'a pas "active"
done

Si tant est que ta commande (systemctl) renvoie effectivement "active" quand le montage est effectué, bien sûr...

Le résultat de la commande dans une xterm est celui donné plus haut mais selon
http://www.freedesktop.org/software/sys … emctl.html dans un script il vaut mieux utiliser show qui rend par argument dont celui qui m'intéresse

ActiveState=active

et pour isoler l'argument c'est --property
j'ai fait un fichier essai.sh dans root
root@ubuntu-desktop:~# ls -alrt essai*
-rwxr-xr-x 1 root root 133 avril  3 19:44 essai.sh

#!/bin/bash
if systemctl show media-user-Elements.mount --property==ActiveState = "active"
then echo "active"
else echo "inactive"
fi

Qui rend bien ce que je demande

root@ubuntu-desktop:~# ./essai.sh


active

Par contre je sais pas pourquoi il saute 3 lignes avant d'écrire la réponse dans le terminal?
donc ça devient

while ` systemctl show media-user-Elements.mount --property==ActiveState != "active" '
do
    sleep 30  # suspend par tranche de 30 sec tant qu'on n'a pas "active"
done

sauf que je ne maîtrise pas pourquoi tu mets  les simples quotes ' et les double quotes "

Dernière modification par grandtoubab (Le 03/04/2015, à 19:38)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#6 Le 04/04/2015, à 10:36

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

Salut  et merci à erresse pour sa piste
Après beaucoup de tâtonnement et de fautes de syntaxe voici la boucle qui fonctionne

debut='debut'
result='debut'
while [ "$debut" = "$result" ];
do
	sleep 2;
	result=$(systemctl show media-guy-Elements.mount -p ActiveState);
done

je l'ai testée dans un fichier local maintenant je vais la mettre dans l'init de minidlna et croiser les doigts

root@ubuntu-desktop:/etc/init.d# ./minidlna
Usage: /etc/init.d/minidlna {start|stop|status|restart|force-reload|rotate}
root@ubuntu-desktop:/etc/init.d# ./minidlna restart
[....] Restarting minidlna (via systemctl): minidlna.serviceWarning: Unit file of minidlna.service changed on disk, 'systemctl daemon-reload' recommended.
. ok 
root@ubuntu-desktop:/etc/init.d# 

ça à l'air bon!
D'ailleurs il faudrait prendre l'habitude d'utiliser systemctl puisque c'est systemd qui gère le démarrage

Dernière modification par grandtoubab (Le 04/04/2015, à 10:43)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#7 Le 04/04/2015, à 10:45

erresse

Re : (resolu)Minidlna comment retarder son démarrage?

Salut,
Attention : Les "simples quotes" dont tu parles ne sont pas des apostrophes (touche 4 = ') mais des caractères graphiques spéciaux (touches AltGr + 7 = `). Ces signes servent à encadrer une commande exécutée depuis le shell pour en récupérer le résultat.
La syntaxe $(commande) est équivalente (et, à mon avis plus évidente).
Je pense que ton test n'est pas significatif, car il n'est pas correctement construit :

grandtoubab a écrit :

#!/bin/bash
if systemctl show media-user-Elements.mount --property==ActiveState = "active"
then echo "active"
else echo "inactive"
fi

Le contenu de la commande en argument du "if" devrait être entouré de crochets [ commande ] pour tester son retour. Genre :

if [ $(systemctl show media-user-Element.mount --property=ActiveState) ] == "active"

On doit tester le retour renvoyé par la commande, donc le critère de comparaison "active" est placé en-dehors de la commande elle-même...
C'est peut-être pour ça que tu as 3 lignes sautées, sans doute la commande n'est pas exécutée correctement, et le test peut répondre toujours positivement s'il n'est pas probant.
Je ne sais pas si je suis assez clair, mais il est difficile d'expliquer clairement ces particularités de la syntaxe et du fonctionnement des instructions bash.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 04/04/2015, à 11:09

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

erresse a écrit :

Salut,
Attention : Les "simples quotes" dont tu parles ne sont pas des apostrophes (touche 4 = ') mais des caractères graphiques spéciaux (touches AltGr + 7 = `). Ces signes servent à encadrer une commande exécutée depuis le shell pour en récupérer le résultat.
La syntaxe $(commande) est équivalente (et, à mon avis plus évidente).
Je pense que ton test n'est pas significatif, car il n'est pas correctement construit :

grandtoubab a écrit :

#!/bin/bash
if systemctl show media-user-Elements.mount --property==ActiveState = "active"
then echo "active"
else echo "inactive"
fi

Le contenu de la commande en argument du "if" devrait être entouré de crochets [ commande ] pour tester son retour. Genre :

if [ $(systemctl show media-user-Element.mount --property=ActiveState) ] == "active"

On doit tester le retour renvoyé par la commande, donc le critère de comparaison "active" est placé en-dehors de la commande elle-même...
C'est peut-être pour ça que tu as 3 lignes sautées, sans doute la commande n'est pas exécutée correctement, et le test peut répondre toujours positivement s'il n'est pas probant.
Je ne sais pas si je suis assez clair, mais il est difficile d'expliquer clairement ces particularités de la syntaxe et du fonctionnement des instructions bash.

merci encore, depuis j'ai progrèssé car je me suis aperçu que ce n'est pas l'état actif du process que je dois tester mais le sous-etat mounted

ca devient:

result='debut'
while [ "$result"  != 'SubState=mounted' ];
do
	sleep 2;
	result=$(systemctl show media-guy-Elements.mount -p SubState);
done

Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#9 Le 04/04/2015, à 11:32

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

grandtoubab a écrit :

ca devient:

result='debut'
while [ "$result"  != 'SubState=mounted' ];
do
	sleep 2;
	result=$(systemctl show media-guy-Elements.mount -p SubState);
done
root@ubuntu-desktop:~# systemctl status media-guy-Elements.mount
● media-guy-Elements.mount - /media/guy/Elements
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since sam. 2015-04-04 12:27:12 CEST; 1min 49s ago
    Where: /media/guy/Elements
     What: /dev/sdb1
root@ubuntu-desktop:~# systemctl status minidlna
● minidlna.service - LSB: Start minidlna at boot time
   Loaded: loaded (/etc/init.d/minidlna)
   Active: active (running) since sam. 2015-04-04 12:27:14 CEST; 1min 57s ago
  Process: 610 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/minidlna.service
           └─1589 /usr/bin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/m...

avril 04 12:27:14 ubuntu-desktop minidlna[610]: Starting DLNA/UPnP-AV media ....
Hint: Some lines were ellipsized, use -l to show in full.

Voilà minidlna est actif exactement 2 secondes après le montage du disque usb  cool

Dernière modification par grandtoubab (Le 04/04/2015, à 14:08)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#10 Le 04/04/2015, à 14:50

erresse

Re : (resolu)Minidlna comment retarder son démarrage?

Impeccable !
En fin de compte, je n'ai pas donné LA bonne réponse mais, mieux encore, je t'ai aidé à fouiller dans la boite à outils pour y dénicher la bonne clé... à utiliser par toi-même. big_smile
C'est-y pas bien plus efficace comme ça ?
tongue


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#11 Le 04/04/2015, à 15:36

grandtoubab

Re : (resolu)Minidlna comment retarder son démarrage?

erresse a écrit :

Impeccable !
C'est-y pas bien plus efficace comme ça ?
tongue

Exactement. Y en a qui sont allergique à systemd/systemctl, c'est bien dommage.


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne