- Содержание статьи
Systemd
На современных дистрибютивах Линукс (а так же остальных 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 можно написать короткое описание исполняемого файла, 2-ая отвечает за возможность пуска этого скрипта в многопользовательском режиме.
В секции 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.
Данные файлы находятся в двух местах, и выполняются в следующем порядке:
- Общие для всех пользователей файлы находятся в директории /etc/
- Для каждого пользователя так же существуют отдельные экземпляры данных файлов, которые находятся в корне их домашних директорий- например, у пользователя sysadmin, они будут находится по пути /home/sysadmin.
Для корректного использования данных файлов, следует понимать их предназначение в системе:
- .bash_profile — данный файл используется для загрузки файлов .profile и .bashrc (в приведенном порядке).
- .bashrc — содержимое данного файла загружается при входе в режим терминала. Именно здесь задаются такие параметры, как внешний вид среды терминала, текстовый редактор по умолчанию и другое.
- .profile — содержимое данного файла загружается при загрузке графической оболочки. Здесь могут быть указаны различные переменные среды, и прочее не относящееся к bash содержимое.

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