- 📑 Настройка автозапуска скриптов в Linux Ubuntu/Mint
- Создание скрипта в init.d для запуска во время инициализации системы
- Загрузка с помощью rc.local после загрузки системы
- Как добавить скрипт в автозагрузку Ubuntu
- В некоторых случаях при загрузке системы возникает необходимость выполнить свой скрипт. К таким случаям относится потребность в изменении разрешения экрана, запуске определенных приложений и обновлении конкретной утилиты.
- Автозагрузка за счет стандартной утилиты Ubuntu
- Автозагрузка скриптов Linux в Systemd
- Создание своего скрипта автозапуска при загрузке компьютера
- Содержание
- Немного более сложный способ
- Выполнение скрипта при включении/отключении сети
- Как добавить скрипт в автозагрузку Ubuntu
- Автозагрузка с помощью стандартной утилиты Ubuntu
- Автозагрузка скриптов Linux в systemd
- Выполнение скрипта при запуске или выключении linux
- Консольный вариант.
- Графический вариант.
📑 Настройка автозапуска скриптов в Linux Ubuntu/Mint
Здесь рассматриваются способы настройки автозапуска скриптов в Ubuntu/Mint только в консольном режиме.
Создание скрипта в init.d для запуска во время инициализации системы
Для начала нужно создать скрипт и скопировать его в директорию /etc/init.d/ удобным для вас способом, а затем сделать его исполняемым командой:
Теперь необходимо добавить его в автозагрузку:
Скрипт запуститься во время инициализации системы.
Удалить из автозагрузки можно так:
Загрузка с помощью rc.local после загрузки системы
Необходимо создать скрипт в любой директории, где вам удобно и сделать его исполняемым как в первом способе.
Затем подправить файл rc.local любым редактором текста, например nano:
Изначально скрипт rc.local пустой и содержит только:
Пропишите полный путь скрипта перед строчкой exit 0 и сохраните файл.
Как сказано в комментариях в эталонном rc.local делаем его исполняемым (хотя во многих дистрибутивах он изначально исполняемый):
Скрипт выполниться после загрузки системы .
Однако в последних версиях Ubuntu (например в Ubuntu 18.04) в директории /etc нет файла rc.local и его необходимо создать и сделать исполняемым:
Все, скрипт должен автоматически запускаться.
Источник
Как добавить скрипт в автозагрузку Ubuntu
В некоторых случаях при загрузке системы возникает необходимость выполнить свой скрипт. К таким случаям относится потребность в изменении разрешения экрана, запуске определенных приложений и обновлении конкретной утилиты.
Запуск скрипта можно реализовать различными способами. Сделать это можно путем использования графической оболочки или системы инициализации systemd, используемая сейчас практически во всех дистрибутивах.
Автозагрузка за счет стандартной утилиты Ubuntu
Первое, что следует сделать, это в удобном месте создать скрипт и выполнить его:
$ sudo gedit /путь_к_скрипту/имя_скрипта.sh
Этот скрипт выведет на экран пользователя сообщения «Hello world». Когда программа готова, ее необходимо сделать исполняемой. Для этого используется следующая команда:
$ sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh
Дальше в главном меню системы необходимо запустить утилиту «Автоматически запускаемые приложения».
Жмем кнопку «Добавить» и вводом полный путь к файлу скрипта в поле «Команда». Можно нажать кнопку «Обзор», найти, выбрать файл скрипта и нажать «Добавить».
В дальнейшем программа будет исполняться каждый раз при запуске графической оболочки Ubuntu.
Автозагрузка скриптов Linux в Systemd
Воспользуйтесь специальной командой, чтобы создать файл сервиса system
sudo systemctl edit —force myscript
В этот файл необходимо добавить содержимое:
Description=My Script Service
Дальше в строчке под названием ExecStart нужно выполнить одно из следующих требований: прописать путь у выполняемому скрипту или команду. После чего скрипт добавляется в автозагрузку:
$ sudo systemctl enable mysrcipt
Источник
Создание своего скрипта автозапуска при загрузке компьютера
Содержание
Создаём пустой файл.
Первой строкой пишем:
Данная строка указывает, какую командную оболочку необходимо использовать. Дальше свои команды.
Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.
Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:
Немного более сложный способ
Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel’ах.
Изучаем /etc/init.d/skeleton , на его основе создаем скрипт /etc/init.d/my_script , которым будет запускаться/останавливаться наше приложение.
В этих директориях лежат скрипты остановки сервисов:
в этих — скрипты запуска сервисов:
Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.
После того, как определились со скриптом запуска и очередностью, выполняем следующее :
Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.
Если что-то не понравилось — все можно удалить
Подробности в man update-rc.d .
Выполнение скрипта при включении/отключении сети
Есть директория /etc/network/ с поддиректориями if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Если разместить скрипт в одной из этих поддиректорий, то он будет выполняться соответственно при выключении, перед включением, после выключения или при включении сети.
Другой способ — указать в файле /etc/network/interfaces одну из следующих директив: up , pre-up , post-up , down , pre-down , post-down . Например, строка
после включения сети выполнит скрипт script.sh. Подробнее можно почитать в man interfaces .
В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.
Источник
Как добавить скрипт в автозагрузку Ubuntu
Иногда возникает необходимость выполнить свой скрипт во время загрузки системы. Например, чтобы запустить определенную программу, поменять настройки разрешения экрана или выполнить обновление необходимой программы.
Сделать это можно несколькими способами. С помощью графической оболочки или с помощью системы инициализации systemd, которая используется сейчас практически во всех дистрибутивах.
Автозагрузка с помощью стандартной утилиты Ubuntu
Создайте скрипт в удобном месте и сделайте его выполняемым:
sudo gedit /путь_к_скрипту/имя_скрипта.sh
#!/bin/bash
echo «Hello world»
Наш скрипт просто выводит строчку Hello world на экран, более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:
sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh
Запустите утилиту Автоматически запускаемые приложения в главном меню системы:
Нажмите кнопку Добавить и в поле Команда введите полный путь к файлу вашего скрипта или выберите его с помощью кнопки Обзор, затем нажмите Добавить:
Скрипт будет выполнен после загрузки графической оболочки Ubuntu.
Автозагрузка скриптов Linux в systemd
Создайте файл сервиса systemd с помощью следующей команды:
sudo systemctl edit —force myscript
Добавьте в него такое содержимое:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/полный/путь/к/скрипту/имя_скрипта.sh
[Install]
WantedBy=multi-user.target
В строчке ExecStart можно прописать либо путь к скрипту, который надо выполнить, либо саму команду. Теперь добавьте этот скрипт в автозагрузку:
sudo systemctl daemon-reload
sudo systemctl enable mysrcipt
Источник
Выполнение скрипта при запуске или выключении linux
Если на вопрос: «как добавить программу в автозагрузку?» — начинающие пользователи находят ответ достаточно быстро, то вопрос о запуске скрипта, при выключении/перезагрузки, ставит их в тупик. В статье будет описан стандартный способ для автоматического выполнения команд при включении и выключении linux, а также более простой способ для пользователей, у которых установлен gdm и графический интерфейс, например ubuntu.
Консольный вариант.
Немного теории.
Следует знать, что в Linux существует 7 уровней запуска. Однако, использоваться могут только 6.
Как у всех уважающих себя программ отсчёт начинается с 0-ля.
0 — Остановка или выключение системы.
1 — Однопользовательский режим.
2 — Многопользовательский режим, но без поддержки сети.
3 — Тоже самое, но с сетью.
4 — Добавили для красоты Не используется.
5 — Графический режим с загрузкой X сервера.
6 — Перезагрузка.
Если перейти в папку /etc (В некоторых дистрибутивах /etc/rc.d) то можно увидеть папки с 7-мью уровнями запуска.
Например при выключении компьютера, выполнятся все скрипты из папки rc0.d
Тут следует остановится по подробнее. Дело в том, что самих скриптов (а точнее сценариев) в этой папке нету, а есть только ссылки на файлы, которые лежат в папке /etc/init.d. Эти сценарии выполняют различные задачи, в зависимости от параметра start или stop (например /etc/init.d/reboot start и /etc/init.d/reboot stop это разные команды, а /etc/init.d/reboot вообще не будет работать). Если в ссылке стоит первая буква S, то значит сценарию подаётся параметр start, а если стоит буква K(от слова kill), то параметр stop. Цифра после буквы обозначает порядок выполнения сценария.
Например, на выше вставленном скриншоте вначале выполниться команда /etc/init.d/hddtemp stop, а уже позже /etc/init.d/networking start.
Хватит теории. Переходим к практике.
Для того, чтобы добавить команду в автозагрузку, достаточно поместить её в файл /etc/rc.local.
В этой части статьи в качестве редактора будет использоваться nano, но вы можете пользоваться своим любимым редактором, например gedit.
И помещаем наши команды чуть выше строчки с exit 0.
Для того, что бы команды выполнялись перед выключением или перезагрузкой нам нужно создать сценарий в папке /etc/init.d
Вставляем следующий код:
Если будет подаваться только один сигнал, то просто закомментируйте строку поставив в начале команды знак #
Например
Теперь делаем файл исполняемым:
Создать ссылки можно вручную, но проще это сделать через команду update-rc.d
Например:
Точки важны (обе). Исследуя просторы интернета, у меня сложилось впечатление, что синтаксис этой программы иногда меняется. Актуальные примеры можно посмотреть по команде «man update-rc.d». Примеры будут в низу.
Эта команда создаст по 2 ссылки в каталогах /etc/rc0.d (второе число в команде) и /etc/rc6.d (третье число в команде). Причём вначале будет выполняться сценарий с параметром stop (т.к. стоит 1), а уже потом с параметром start (т.к. стоит 20).
Если второй параметр не нужен, то можно выполнить команду:
Советую ставить приоритет повыше (т.е. число после start или stop должно быть маленьким), желательно меньше 20. В обратном случае у меня иногда зависал компьютер при попытке перезагрузиться.
Для пользователей ubuntu, да и многих других современных дистрибутивов с gdm можно воспользоваться…
Графический вариант.
Что касается автозагрузки то можно воспользоваться способом описанным здесь.
Или просто открыть «автоматически запускаемые приложения» командой:
Для выполнения скрипта при выключении компьютера, помещаем его в файл /etc/gdm/PostSession/Default
Источник