script init.d não pode acessar o áudio alsa

0

Eu escrevi um script init.d simples para iniciar um script de monitor de hardware . Ele funciona bem, exceto que não pode acessar o serviço de áudio alsa:

#! /bin/sh

SCRIPT_PATH="/d/SharedPrograms/hwleds.py"

case $1 in
    start)
        say "starting service hwleds..."
        python $SCRIPT_PATH &
        exit $?
        ;;
    stop)
        pkill -f "python $SCRIPT_PATH"
        exit $?
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 1

O erro que recebo do comando say e do script python é:

audio_open_alsa: failed to open audio device default. Operation not permitted

edit: O script python pode acessar o alsa se ele for iniciado normalmente pelo usuário root por meio de um shell interativo; ele só falhará se for iniciado como um serviço durante a inicialização ou via service hwleds start .

Meu real /root/.asoundrc :

defaults.pcm.card 0
defaults.pcm.device 3

ctl.equal {
  type equal;
}

pcm.plugequal {
  type equal;
  # Modify the line below if you don't
  # want to use sound card 0.
  slave.pcm "plughw:0,3";
  # or if you want to use with multiple applications output to dmix
  # slave.pcm "plug:dmix"
}

#pcm.equal {
  # Or if you want the equalizer to be your
  # default soundcard uncomment the following
  # line and comment the above line.
 pcm.!default {
  type plug;
  slave.pcm plugequal;
}
    
por eadmaster 17.03.2017 / 07:42

0 respostas