Linux-эквивалент папки автозагрузки Windows

Linux-эквивалент папки автозагрузки Windows

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

/etc/systemd/system

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

/etc/rc.local

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

/etc/init.d

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

решение1

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

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

@reboot /usr/bin/blah

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

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

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

[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, см.эта ссылка.

Связанный контент