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에 연결할 수 있도록 서비스 파일에 추가