Я написал udev-rule и systemd-unit, поэтому, если я подключаю конкретный жесткий диск, rsync создает резервную копию моего / home в фоновом режиме и воспроизводит аудиофайл, когда будет готов.
Во время моей первой попытки я получаю следующую ошибку pulseaudio[8802]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Заметьте, это я исправил. Я вернул свой звук после того, как скрипт был готов.
Но я не понимаю, почему pacat или даже aplay нуждаются в этой переменной для воспроизведения только аудио. Я запускаю Ubuntu Bionic с xfce4-сессией.
Оба aplay
и pacat
программы пространства пользователя, таким образом, самый легкий способ для программиста получить звук там состоит в том, чтобы использовать dbus
библиотека, поскольку никто в их правильном уме не собирается использовать их в cron
, или в a udev
правило, или не дай бог в systemd
, право???:-)
Ну, они были правильными, пока Вы не приехали, и Вы действительно взяли правильное решение для решения этой проблемы.
Если требуется смочь сделать звук без X выполнений вообще (НАПРИМЕР, бездисплейный сервер), Вы могли бы отозваться эхом ASCII
BEL
¹ символ к a tty
.
Примечание 1: 007: действительно ретро: звуковой сигнал был более важным затем Перевод строки (10), Перевод формата (12) или Возврат каретки (13)...