2

У меня есть скрипт, который я хочу запустить при запуске для Linux, я знаю, что в Windows есть папка для запуска, и в Linux она есть. Я провел некоторое исследование и нашел различные файлы с множеством противоречивых ответов. Путь:

/etc/systemd/system

похоже используется. Еще один:

/etc/rc.local

и я также видел:

/etc/init.d

Мне просто нужен путь для Linux-эквивалента папки запуска Windows, которая существует во всех или, по крайней мере, в большинстве дистрибутивов Linux. Я также хочу иметь возможность поместить скрипт в этот каталог, чтобы он запускался при запуске. Какой путь может удовлетворить эти требования.

1 ответ1

3

Большинство форм автозапуска зависят от вашей установки: используемая вами система инициализации (sysv vs systemd vs upstart), среда рабочего стола (GNOME/KDE и не XDG) и т.д.

Cron существует в большинстве систем Linux и может использоваться для автозапуска. Добавьте строку в ваш /etc/crontab:

@reboot /usr/bin/blah

где /usr/bin/blah - это команда, которую вы хотите выполнить.

Если вы хотите, чтобы программа запускалась при каждом входе в систему, и вы используете XDG-совместимую среду рабочего стола (например, GNOME или KDE), поместите файл .desktop в ~/.config/autostart . Пример файла .desktop см. В вики Arch .

С другой стороны, если ваш дистрибутив Linux использует systemd, вы можете написать файл модуля. Например:

[Unit]
Description=autostart something

[Service]
Type=oneshot
ExecStart=/usr/bin/blah

[Install]
WantedBy=multi-user.target

Поместите приведенный выше текст в /etc/systemd/system/blah.service и запустите systemctl daemon-reload от имени пользователя root, чтобы зарегистрировать службу. Затем запустите systemctl enable blah.service чтобы включить автозапуск вашего нового сервиса.

Для получения подробной информации о том, как написать системный файл systemd, смотрите эту ссылку.

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