Назад | Перейти на главную страницу

Перемещение pulseaudio из дома

У нас есть несколько рабочих столов Ubuntu с их домашними каталогами, смонтированными как общие ресурсы NFS. Если соединение NFS разрывается, даже если кажется, что меньше секунды, pulseaudio теряет рассудок. Результатом является либо временная мягкая блокировка (когда Ubuntu делает экран серым), сбои и даже несколько паник тут и там. Вы можете увидеть множество проблем NFS + pulseaudio, просто выполнив поиск в Google по этим терминам.

Из-за этого я действительно хочу просто переместить импульс из / домой и поместить его в более подходящее или специфичное для машины место.

По какой-то причине pulseaudio ориентирован на безопасность. Я не особо разочарован этим, хотя и не уверен, почему это так важно для звукового демона. Но их ограничения слишком жесткие.

Например, я попытался создать символическую ссылку ~ / .pulse на / tmp, и он просто вернул следующее:

Failed to create secure directory: Too many levels of symbolic links

И пульс остановится.

Затем я столкнулся с эта тема в котором указаны переменные окружающей среды, которые можно настроить для направления импульсов в другие каталоги. Итак, я попробовал настроить импульсный лаунчер (/etc/xdg/autostart/pulseaudio.desktop), чтобы использовать следующую строку Exec:

Exec='PULSE_DIR="/tmp/$( whoami )-pulse"; PULSE_CONFIG_PATH=PULSE_DIR; PULSE_STATE_PATH=PULSE_DIR; PULSE_RUNTIME_PATH=PULSE_DIR; mkdir -p $PULSE_DIR && chmod 700 $PULSE_DIR && start-pulseaudio-x11'

Я даже попытался установить разрешения и владельца на то, что, как мне казалось, могло бы понравиться Pulse. Я почерпнул то, что думал, из трассировки стека, размещенной в ошибка 662(там же подробнее об этой проблеме).

Однако этот набор команд приводит к выдаче импульса следующего и последующему выходу.

Failed to create secure directory: Permission denied

Теперь, поскольку разработчики, похоже, обычно не желают принимать это как проблему, мне нужно найти способ обойти это. Если нет, я собираюсь удалить Pulse, что не идеально для будущей совместимости на этих машинах.

Мы уже потратили кучу человеко-часов на отслеживание и попытки решить эту проблему, и пора двигаться дальше.

Если у кого-то есть идеи по обходным путям или есть дополнительная информация по этой проблеме, я был бы очень признателен.

Немного поздно, но, может быть, это все же поможет.

Привязка к какой-либо другой папке (вне вашего монтирования NFS) - ваш друг. Я просто успешно попробовал.

mount -o привязать /tmp/.johndoe_puls /home/johndoe/.puls

Конечно, это может сделать только пользователь root. Точка монтирования bindmount получает те же разрешения, что и цель монтирования.

С уважением, Йорн

Разработчикам PulseAudio, похоже, не нравятся многие вещи, одна из которых - это обходной путь:

Используйте PulseAudio как системный демон, а не запускать его для каждого пользователя.

Как я уже упоминал, разработчики особо этого не рекомендуют, по своим причинам. Если вы сделаете это, помните о потенциальном влиянии на безопасность ваших систем.

В вашем сценарии есть несколько ошибок. Если вы хотите переместить каталоги pulseaudio из домашнего каталога, вам нужно добавить следующий код в свой ~/.bash_profile файл конфигурации:

PULSE_DIR="/tmp/$( whoami )-pulse"
mkdir -p $PULSE_DIR && chmod 700 $PULSE_DIR
export PULSE_CONFIG_PATH=$PULSE_DIR
export PULSE_STATE_PATH=$PULSE_DIR
export PULSE_RUNTIME_PATH=$PULSE_DIR

С уважением, Иржи