xvfb-run [команда] в качестве службы systemd при запуске

523
Lw Bi

Я хочу, чтобы Spotify запускался в фоновом режиме на моем домашнем сервере (Ubuntu 16.04), чтобы я мог использовать его для потоковой передачи звука на подключенные к нему динамики ( SpotifyConnect ).

С xvfb-run -a spotify --disable-gpuэтим работает отлично (вручную). Но я уже несколько дней пытаюсь выполнить эту команду при запуске системы. Я попробовал несколько методов, но теперь решил для systemd, потому что кажется, что я все равно получаю ту же ошибку.

Когда я запускаю команду вручную, это дает мне небольшую ошибку около 9 раз, но работает отлично:

(spotify: 3825): GLib-GIO-CRITICAL **: g_dbus_connection_send_message: утверждение 'G_IS_DBUS_CONNECTION (соединение)' не выполнено

Но как системный сервис я просто получаю

systemd 1 : запущен сервис Spotify.

08.01 17:34:37 ​​s1 systemd [3574]: spotify.service: Выполнение: / usr / bin / xvfb-run spotify

08.01 17:34:37 ​​s1 xvfb-run [3574]: завершить вызов после выброса экземпляра 'std :: logic_error'

08.01 17:34:37 ​​s1 xvfb-run [3574]: что (): basic_string :: _ S_construct null недопустимо

08 января 17:34:37 ​​s1 xvfb-run [3574]: прервано (ядро сброшено)

То же самое, когда я не выполняю команду из «spotify.service», но выполняю ShellScript, содержащий команду. Конечно, запуск сценария вручную работает. Там нет различий без -aи --disable-gpu(за исключением некоторых ошибок GPU), поэтому я игнорирую это сейчас. Мой spotify.service в / etc / systemd / system:

[Unit] Description=Spotify Service After=network.target network-online.target  [Service] EnvironmentFile=/root/Schreibtisch/SpotifyServiceHelp ExecStart=/usr/bin/xvfb-run $ARG  [Install] WantedBy=multi-user.target 

EnvironmentFile делает вид, что systemd видит «spotify» как другую команду, а не как аргумент. Так что SpotifyServiceHelp просто содержит ARG=spotify.

Кто-нибудь знает в чем проблема или нашел обходной путь например как "игнорировать" логическую ошибку? Спасибо.

0

0 ответов на вопрос

Похожие вопросы