Я пытаюсь настроить процесс Python, который воспроизводит аудио, чтобы автоматически запускаться при загрузке с systemd, но когда я это делаю, аудио полон щелчков, хотя все нормально, когда я запускаю его сам в командной строке. Как вы можете видеть в моем .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