init.d 스크립트가 alsa 오디오에 액세스할 수 없습니다.

init.d 스크립트가 alsa 오디오에 액세스할 수 없습니다.

시작하기 위해 간단한 init.d 스크립트를 작성했습니다.하드웨어 모니터링 스크립트. 잘 작동하지만 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

say명령과 Python 스크립트에서 발생하는 오류는 다음과 같습니다.

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

편집: Python 스크립트가 대화형 셸을 통해 루트 사용자에 의해 정상적으로 시작된 경우 시작 프로세스 중에 서비스로 시작된 경우에만 alsa에 액세스할 수 있습니다 service hwleds start.

내 실제 상황 /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;
}

답변1

Volumio에서도 같은 문제가 있습니다. 삭제하여 .alsaequal.bin해결되었습니다 ./var/lib/mpd/

관련 정보