MyTetra Share
Делитесь знаниями!
Время создания: 17.03.2019 23:39
Автор: alensav
Текстовые метки: script, скрипт
Раздел: MyTetra - Ubuntu_Command
Запись: xintrea/mytetra_db_alensav/master/base/15528551524zoe8ljsv1/text.html на raw.githubusercontent.com

Создаём пустой файл.


Первой строкой пишем:


#!/bin/sh

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


Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.


Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:


#!/bin/sh -e

#Здесь вставляем строку с указанием вашего скрипта.

/usr/sbin/mescripts

exit 0

Немного более сложный способ

Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel'ах.


Изучаем /etc/init.d/skeleton, на его основе создаем скрипт /etc/init.d/my_script, которым будет запускаться/останавливаться наше приложение.


В этих директориях лежат скрипты остановки сервисов:


/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/

в этих — скрипты запуска сервисов:


/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/

Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.


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


sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .

Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.


Если что-то не понравилось — все можно удалить


sudo update-rc.d -f my_script remove

Подробности в 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. Например, строка


post-up /path/to/script.sh

после включения сети выполнит скрипт script.sh. Подробнее можно почитать в man interfaces.


В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.


Ссылки

автозагрузка в ubuntu server — оригинальная статья на форуме

Скрипты, tips

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования