У меня есть функция POST, в которой я пытаюсь запустить проигрыватель VLC, используя child_process. Я использую последнюю версию Raspbian.
router.post('/', function (req, res) {
let spawn = require('child_process').spawn;
let vlc = spawn('vlc');
vlc.stderr.on('data', function(data) {
console.log(data.toString());
});
vlc.on('exit', function(code){
console.log('Exit code: ' + code);
});
res.send({success: true})
});
После запуска запроса я получаю следующее сообщение:
VLC не должен запускаться от имени пользователя root. Сожалею. Если вам нужно использовать
приоритеты в реальном времени и / или привилегированные порты TCP, которые вы можете использовать
vlc-wrapper (убедитесь, что он является корневым для Set-UID и не может быть запущен
сначала недоверенные пользователи).
Поскольку VLC не может быть запущен от имени пользователя root, я добавил аргумент UID в сценарий запуска vlc, и теперь он выглядит следующим образом:
let vlc = spawn('vlc' ,{uid: 1000});
Где UID: 1000 - это идентификатор пользователя, которого я всегда использую.
После запуска запроса я получаю еще одно сообщение в журнале:
[016f9960] основная ошибка libvlc: не удается открыть файл конфигурации
(/root/.config/vlc/vlcrc): в доступе отказано
Домашний каталог недоступен: в доступе отказано
[01762eb0] Ошибка вывода звука vlcpulse: соединение с сервером PulseAudio
ошибка: соединение отклонено
[0176bde8] Ошибка интерфейса dbus: не удалось подключиться к D-Bus
Сеансный демон: Невозможно автоматически запустить dbus-демон без $ DISPLAY
для X11
[0176bde8] ошибка основного интерфейса: нет подходящего интерфейсного модуля
[016f9960] основная ошибка libvlc: инициализация интерфейса "dbus, none"
не удалось
[0176c7a8] ошибка основного интерфейса: нет подходящего интерфейсного модуля
[016f9960] основная ошибка libvlc: интерфейс "globalhotkeys, none"
инициализация не удалась
[016f9960] main libvlc: Запуск vlc с интерфейсом по умолчанию. использование
'cvlc' для использования vlc без интерфейса.
ошибка: XDG_RUNTIME_DIR не установлен в среде.
[0176c7a8] Ошибка интерфейса skins2: невозможно инициализировать OSFactory
[017614e0] основной список воспроизведения: список воспроизведения пуст
[0176c7a8] [cli] lua interface: Прослушивание на хосте "* console".
Плеер не запускается. Но если я выполню ту же команду через ssh, она запустится. Что может привести к тому, что узел не будет запущен?