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;
}
Tags alsa init.d init-script