systemd로 부팅할 때 자동으로 시작되도록 오디오를 재생하는 Python 프로세스를 설정하려고 하는데, 명령줄에서 직접 실행할 때는 문제가 없더라도 오디오에 팝 소리가 가득합니다. 아래 내 파일에서 볼 수 있듯이 .service
저는 제가 생각할 수 있는 모든 방법으로 프로세스 우선순위를 최대화하려고 노력했습니다. 무엇이 잘못되고 있는지 아는 사람이 있나요?
스크립트는 여기에 있습니다:https://github.com/UndarkAido/superhet( 이를 실행하려면 music
디렉토리와 사용자 자신을 채워야 합니다 . 디렉토리 를 채웁니다 .)secrets.py
genBreaks.py
breaks
슈퍼히트.서비스:
[Unit]
Description=Superhet radio
After=multi-user.target sound.target
[Service]
Type=simple
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99
IOSchedulingClass=realtime
IOSchedulingPriority=0
Nice=-20
User=aidan
Group=aidan
WorkingDirectory=/home/-user-/Source/superhet
ExecStart=/home/-user-/Source/superhet/venv/bin/python main.py
[Install]
WantedBy=multi-user.target
시스템 정보:
`.::///+:/-. --///+//-:`` -user-@superhet
`+oooooooooooo: `+oooooooooooo: --------------
/oooo++//ooooo: ooooo+//+ooooo. OS: Raspbian GNU/Linux 10 (buster) armv7l
`+ooooooo:-:oo- +o+::/ooooooo: Host: Raspberry Pi 4 Model B Rev 1.1
`:oooooooo+`` `.oooooooo+- Kernel: 5.10.63-v7l+
`:++ooo/. :+ooo+/.` Uptime: 20 mins
...` `.----.` ``.. Packages: 1485 (dpkg)
.::::-``:::::::::.`-:::-` Shell: bash 5.0.3
-:::-` .:::::::-` `-:::- Terminal: /dev/pts/0
`::. `.--.` `` `.---.``.::` CPU: BCM2711 (4) @ 1.500GHz
.::::::::` -::::::::` ` Memory: 89MiB / 1872MiB
.::` .:::::::::- `::::::::::``::.
-:::` ::::::::::. ::::::::::.`:::-
:::: -::::::::. `-:::::::: ::::
-::- .-:::-.``....``.-::-. -::-
.. `` .::::::::. `..`..
-:::-` -::::::::::` .:::::`
:::::::` -::::::::::` :::::::.
.::::::: -::::::::. ::::::::
`-:::::` ..--.` ::::::.
`...` `...--..` `...`
.::::::::::
`.-::::-`
편집: 주기적 systemctl status superhet.service
으로 표시됩니다.superhet python[1040]: ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred
답변1
Environment=XDG_RUNTIME_DIR=/run/user/1000
서비스 파일에 추가하면 PyGame이 PulseAudio에 연결할 수 있습니다.