У меня есть скрипт, который запускает мое приложение

./run_se

и это работает просто отлично. Но я хочу запустить его при загрузке системы, поэтому в after.boot у меня есть

su artisan -c "/home/artisan/run_se"

но это ошибки, Альса утверждает

ALSA lib pcm_hw.c:1693:(_snd_pcm_hw_open) Invalid value for card

когда я пытаюсь открыть устройство вывода. Я отобразил пользователя и группу в сценарии, и они соответствуют ожиданиям (ремесленник / пользователь). Как это задание запускается из-за того, что оно отличается от того же задания, которое было запущено пользователем artisan, почему alsa не нравится, и как я могу запустить alsa при запуске во время загрузки? (Я также попытался добавить -l к команде su)

openSUSE 13.2, система, созданная из Suse Studio, JeOS

Изменить: становится страннее. Если я войду в систему как root, я могу запустить программу без ошибок. Тем не менее, если я Alt-F3 и войти в систему как root, программа ошибки. Если я вхожу как artisan, а затем su в root, программа не выдает ошибку.

Я подозреваю, что systemd (который уже однажды укусил меня), но мое чтение, поиск в Google и гадание еще не нашли курящего пистолета.

1 ответ1

1

Оказывается, это была глупая ошибка, которую я совершил, и постоянная загадка.

Глупая ошибка в том, что у меня не было ремесленника в качестве члена аудиогруппы. Но я был смущен ...

Загадка заключается в том, почему запуск программы при запуске из окна терминала работает иначе, чем из ssh. И почему запуск этой программы вызывает ошибку, когда пользователь, выполняющий ее, является пользователем root. Я все еще не понимаю этого, но буду игнорировать это, так как теперь я могу продолжать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .