Автозапуск в Linux
- Recluse
- 22.10.2019
- 10 031
- 0
- 20
- 20
- 0

- Содержание статьи
Systemd
На современных дистрибютивах Linux (а так же других UNIX-подобных операционных системах), одним из самых простых способов запуска нужной команды, скрипта или программы является создание сервиса для Systemd.
Рассмотрим решение задачи автозапуска скрипта hello.sh лежащего по адресу /home/sysadmin/:
- Сперва создадим файл по адресу
/lib/systemd/system/
, и назовем его hello.service. - Заполняем свежесозданный файл:
[Unit] Description=Hello script After=multi-user.target [Service] Type=idle ExecStart=/home/sysadmin/hello.sh [Install] WantedBy=multi-user.target
В первой строчке секции Unit можно написать краткое описание исполняемого файла, вторая отвечает за возможность запуска данного скрипта в многопользовательском режиме.
В секции Service, Type отвечает за однократный запуск (при значении idle), а ExecStart - это путь к исполняемому файлу. - Для включения автозапуска осталось выполнить несколько команд:
- Даем права на чтение всем пользователям:
sudo chmod 644 /lib/systemd/system/hello.service
- Обновляем список доступных сервисов systemd:
sudo systemctl daemon-reload
- Включаем автозагрузку сервиса hello:
sudo systemctl enable hello.service
- Даем права на чтение всем пользователям:
rc.local
Одним из самых старых способов запуска нужных команд является специальный файл rc.local. Находится данный файл в директории /etc/ и по умолчанию содержит всего одну команду:
exit 0
Достаточно написать что-то перед данной строкой, и эта команда будет исполнятся при запуске системы.
В современных системах, вроде Debian 9 или Ubuntu 18.04, данный файл отсутствует, но ради обеспечения обратной совместимости возможность автозапуска с его помощью оставлена.
Для его использования его необходимо создать, а затем дополнительно активировать через systemd:
systemctl enable rc-local
systemctl start rc-local.service
.bashrc и .profile
Если нужно автоматически запускать какую-то программу, скрипт или команду при входе пользователя в систему, то для этой цели прекрасно подойдут файлы .bashrc и .profile, которые должны лежать в домашней директории пользователя. Достаточно вписать туда любую команду, и она будет выполняться при каждом логине пользователя.
Добавить комментарий