Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Le mystère de l'init de pulseaudio

2 réponses
Avatar
Goldy
Bonjour à tous,

Je suis assez perplexe face au script init de pulseaudio, ce dernier est
configuré par défaut pour ne pas être lancé au démarrage du système, or
j'ai l'impression que ce script ne peut pas fonctionner en l'état, du
moins, je n'arrive personnellement pas à le faire marcher à condition de
l'éditer lourdement, et ça me laisse dubitatif car ça ne semble pas être
le cas des autres utilisateurs.

Je vous copie le fichier tel qu'il est présent :

> #!/bin/sh -e
> ### BEGIN INIT INFO
> # Provides: pulseaudio esound
> # Required-Start: $remote_fs $syslog dbus
> # Required-Stop: $remote_fs $syslog dbus
> # Should-Start: dbus
> # Should-Stop: dbus
> # Default-Start: 2 3 4 5
> # Default-Stop: 1
> # Short-Description: Start the PulseAudio sound server
> # Description: System mode startup script for
> # the PulseAudio sound server.
> ### END INIT INFO
>
> DAEMON=/usr/bin/pulseaudio
> PIDFILE=/var/run/pulse/pid
> PATH=/sbin:/bin:/usr/sbin:/usr/bin
>
> test -x $DAEMON || exit 0
>
> . /lib/lsb/init-functions
>
> PULSEAUDIO_SYSTEM_START=0
> DISALLOW_MODULE_LOADING=1
>
> test -f /etc/default/pulseaudio && . /etc/default/pulseaudio
> test "$PULSEAUDIO_SYSTEM_START" != "1" && exit 0
>
> pulseaudio_start () {
> log_begin_msg "Starting PulseAudio Daemon"
> start-stop-daemon -x $DAEMON -p $PIDFILE --start -- --system --daemonize --high-priority --log-target=syslog --disallow-module-loading=$DISALLOW_MODULE_LOADING
> status=$?
> if [ -e /var/run/pulse/.esd_auth ]; then
> chown pulse:pulse-access /var/run/pulse/.esd_auth
> chmod 640 /var/run/pulse/.esd_auth
> fi
> if [ -e /var/run/pulse/.pulse-cookie ]; then
> chown pulse:pulse-access /var/run/pulse/.pulse-cookie
> chmod 640 /var/run/pulse/.pulse-cookie
> fi
> log_end_msg ${status}
> }
>
> pulseaudio_stop () {
> log_begin_msg "Stopping PulseAudio Daemon"
> start-stop-daemon -p $PIDFILE --stop --retry 5 || echo -n "... pulseaudio is not running"
> log_end_msg $?
> }
>
> case "$1" in
> start|stop)
> pulseaudio_${1}
> ;;
> restart|reload|force-reload)
> pulseaudio_stop
> pulseaudio_start
> ;;
> force-stop)
> pulseaudio_stop
> killall pulseaudio || true
> sleep 2
> killall -9 pulseaudio || true
> ;;
> *)
> echo "Usage: /etc/init.d/pulseaudio {start|stop|force-stop|restart|reload|force-reload}"
> exit 1
> ;;
> esac
>
> exit 0


Pour ce que je maitrise du bash, ce script ne me semble pas
problématique, il suffit simplement de changer les options suivante pour
activer le script :

> PULSEAUDIO_SYSTEM_START=1
> DISALLOW_MODULE_LOADING=0

Or voilà, après édition de ces lignes, le script ne se lance toujours pas.

Je suis obligé de commenter cette ligne pour que le script veuille bien
s'exécuter :

> test "$PULSEAUDIO_SYSTEM_START" != "1" && exit 0

Mais alors survient un autre problème tout aussi déroutant, l'option
DISALLOW_MODULE_LOADING reste définit sur 1 malgré le fait que je l'ai
mise sur 0.

Étant donné ma stupeur, j'ai ajouté une ligne de débugage pour afficher
les valeur des variables

> echo "$PULSEAUDIO_SYSTEM_START & $DISALLOW_MODULE_LOADING"

les valeurs qui apparaissent correspondent à ce que j'ai inscrit, donc
pas de problème, mais si je vérifie les options d'exécution de
pulseaudio, alors grosse surprise :


> ~$ sudo /etc/init.d/pulseaudio start
> 1 & 0 (note : c'est la ligne de débugage)
> Starting PulseAudio Daemon.
> ~$ ps -ef | grep pulse
> pulse 19081 1 0 00:38 ? 00:00:00 /usr/bin/pulseaudio --system --daemonize --high-priority --log-target=syslog --disallow-module-loading=1

Ma question est WTF ?

Étant un peu pragmatique, je vous avoue que j'ai viré la variable du
script et directement inscrit l'option, et là ça fonctionne. Mais c'est
à n'y rien comprendre, comment une variable définit sur 0 peut-elle d'un
seul coup se retrouver en 1 ?

Si quelqu'un y comprend quelque chose...

Merci d'avance.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

2 réponses

Avatar
Nicolas Dandrimont
--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

* Goldy [2009-03-31 00:50:23 +0200]:

> PULSEAUDIO_SYSTEM_START=0
> DISALLOW_MODULE_LOADING=1
>
> test -f /etc/default/pulseaudio && . /etc/default/pulseaudio
>
[...]

Pour ce que je maitrise du bash, ce script ne me semble pas
problématique, il suffit simplement de changer les options suivante pour
activer le script :

> PULSEAUDIO_SYSTEM_START=1
> DISALLOW_MODULE_LOADING=0

Or voilà, après édition de ces lignes, le script ne se lance toujou rs pas.




Il y a quoi dans /etc/default/pulseaudio ? Parce que ce fichier est
sourcé (son contenu est exécuté) juste après avoir mis les options par
défaut. C'est le comportement habituel des init scripts (au moins sous
Debian) : mettre les options configurables dans
/etc/default/nom_du_script.

On va commencer par là, le reste, il faudra voir après ;)

A+,
--
Nicolas Dandrimont

"Linux: the operating system with a CLUE...
Command Line User Environment".
(seen in a posting in comp.software.testing)

--0F1p//8PRICkK4MW
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAknRXOsACgkQacIxuZqlam2IfACfQKUt2QiVXXqOcS6Tv/ZZ0ObH
GEUAn2S9BKQPuIW6KgFjxIiKStknazmD
ÑiT
-----END PGP SIGNATURE-----

--0F1p//8PRICkK4MW--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Goldy
Nicolas Dandrimont a écrit :
* Goldy [2009-03-31 00:50:23 +0200]:

PULSEAUDIO_SYSTEM_START=0
DISALLOW_MODULE_LOADING=1

test -f /etc/default/pulseaudio && . /etc/default/pulseaudio



[...]

Pour ce que je maitrise du bash, ce script ne me semble pas
problématique, il suffit simplement de changer les options suivante pour
activer le script :

PULSEAUDIO_SYSTEM_START=1
DISALLOW_MODULE_LOADING=0


Or voilà, après édition de ces lignes, le script ne se lance toujours pas.




Il y a quoi dans /etc/default/pulseaudio ? Parce que ce fichier est
sourcé (son contenu est exécuté) juste après avoir mis les options par
défaut. C'est le comportement habituel des init scripts (au moins sous
Debian) : mettre les options configurables dans
/etc/default/nom_du_script.

On va commencer par là, le reste, il faudra voir après ;)

A+,



Ha oui, effectivement, c'est dans ce fichier que sont inscrit les options.

Je ne savais pas que les options étaient là dedans, en cherchant sur
google, j'étais tombé sur un message d'un utilisateur qui disait avoir
édité directement le fichier init, et j'en ai conclut que c'était la
marche à suivre.

Merci pour ta réponse en tout cas, je sais quoi éditer maintenant.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS