Я создаю небольшой проигрыватель интернет-радио, используя Archlinux. Все, что мне нужно сейчас, это автозапуск (без входа в систему!) скрипт или просто команда:

su -c 'screen "vlc (a lot of parameters)"' vlc_user

Прочитав этот https://wiki.archlinux.org/index.php/Autostarting и этот https://wiki.archlinux.org/index.php/Bash#Configuration_file_sourcing_order_at_startup, я обнаружил, что мне нужно добавить свою команду в /etc /bash.bashrc ... но это не работает ...

Кто-нибудь может помочь или / и направить меня, как заставить это работать?

Спасибо!

1 ответ1

1

Хотя вы точно не говорите, что не работает, я предполагаю, что программа, которую вы хотите запустить, на самом деле не запускается при загрузке.

Проблема в том, что файл bashrc фактически не запускается при запуске - обычно он запускается при входе в систему. Вы можете подтвердить это, войдя в систему пользователя, а затем команда должна быть запущена. Если это не так, это не имеет значения, потому что вы должны использовать systemd (при условии, что вы используете systemd, а не сценарии в стиле init.d).

Когда вы загружаете систему, systemd должен иметь цель по умолчанию, которую я обозначу как $TARGET . Эта цель, скорее всего, multi-user.target . Я также собираюсь предположить, что ваша команда - это $COMMAND , либо команда, либо файл сценария.

Теперь откройте каталог /etc/systemd/system и укажите вашему редактору файл internet-radio.service . Напишите следующее:

[Unit]
Description=Internet Radio
[Service]
ExecStart=$COMMAND
[Install]
WantedBy=$TARGET

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

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