Автозапуск в Linux

  • 22.10.2019
  • 1 459
  • 0
  • 100.00%
  • 1
Автозапуск в Linux

Содержимое статьи:

Systemd

На современных дистрибютивах Linux (а так же других UNIX-подобных операционных системах), одним из самых простых способов запуска нужной команды, скрипта или программы является создание сервиса для Systemd.

Рассмотрим решение задачи автозапуска скрипта hello.sh лежащего по адресу /home/sysadmin/:

  1. Сперва создадим файл по адресу /lib/systemd/system/, и назовем его hello.service.
  2. Заполняем свежесозданный файл:
    [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 - это путь к исполняемому файлу.

  3. Для включения автозапуска осталось выполнить несколько команд:
    • Даем права на чтение всем пользователям:
      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, которые должны лежать в домашней директории пользователя. Достаточно вписать туда любую команду, и она будет выполняться при каждом логине пользователя.

Если существует файл .bashrc, то файл .profile выполняться не будет!

Была ли эта статья Вам полезна?


Добавить комментарий

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.