Как добавить скрипт в автозагрузку Ubuntu

24.02.2021, 20:29

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

Запуск скрипта можно реализовать различными способами. Сделать это можно путем использования графической оболочки или системы инициализации systemd, используемая сейчас практически во всех дистрибутивах.

Автозагрузка за счет стандартной утилиты Ubuntu

Первое, что следует сделать, это в удобном месте создать скрипт и выполнить его:

$ sudo gedit /путь_к_скрипту/имя_скрипта.sh

#!/bin/bash

echo "Hello world"

Этот скрипт выведет на экран пользователя сообщения «Hello world». Когда программа готова, ее необходимо сделать исполняемой. Для этого используется следующая команда:

$ sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh

Дальше в главном меню системы необходимо запустить утилиту «Автоматически запускаемые приложения».

Автоматически запускаемые приложения

Жмем кнопку «Добавить» и вводом полный путь к файлу скрипта в поле «Команда». Можно нажать кнопку «Обзор», найти, выбрать файл скрипта и нажать «Добавить».

Графическая оболочка Ubuntu

В дальнейшем программа будет исполняться каждый раз при запуске графической оболочки Ubuntu.

Автозагрузка скриптов Linux в Systemd

Воспользуйтесь специальной командой, чтобы создать файл сервиса system

Это команда:

sudo systemctl edit --force myscript

В этот файл необходимо добавить содержимое:

[Unit]

Description=My Script Service

After=multi-user.target

[Service]

Type=idle

ExecStart=/полный/путь/к/скрипту/имя_скрипта.sh

[Install]

WantedBy=multi-user.target

Создание файла сервиса systemd

Дальше в строчке под названием ExecStart нужно выполнить одно из следующих требований: прописать путь у выполняемому скрипту или команду. После чего скрипт добавляется в автозагрузку:

$ sudo systemctl daemon-reload

$ sudo systemctl enable mysrcipt

Программа запустится после инициализации системы. С этой целью можно пользоваться «старым» способом: с помощью rc.local. сощдается файл /etc/rc.local и прописывается путь к нему в строке ExecStart сервис-файла.