Создание своего скрипта автозапуска при загрузке компьютера Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:создание_скрипта_автозапуска [2009/05/25 14:31]
wiki:создание_скрипта_автозапуска [2014/11/22 11:07] (текущий)
[Выполнение скрипта при включении/отключении сети]
Строка 7: Строка 7:
 <​code>#​!/​bin/​sh</​code>​ <​code>#​!/​bin/​sh</​code>​
  
-Данная строка указывает какую командную оболочку необходимо использовать. Дальше свои команды.+Данная строка указываеткакую командную оболочку необходимо использовать. Дальше свои команды.
  
 Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/. Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.
  
-Чтобы скрипт запускался при загрузке необходимо прописать его в файле /​etc/​rc.local до строчки exit 0. Если у вас не существует данного файла создайте его и вставьте в него следующее содержимое:​+Чтобы скрипт запускался при загрузкенеобходимо прописать его в файле /​etc/​rc.local до строчки exit 0. Если у вас не существует данного файласоздайте его и вставьте в него следующее содержимое:​
 <​code>#​!/​bin/​sh -e <​code>#​!/​bin/​sh -e
 #Здесь вставляем строку с указанием вашего скрипта. #Здесь вставляем строку с указанием вашего скрипта.
 /​usr/​sbin/​mescripts /​usr/​sbin/​mescripts
 exit 0</​code>​ exit 0</​code>​
 +
 +===== Немного более сложный способ =====
 +
 +Позволяет задать последовательность загрузки и поведение скрипта при разных 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/
 +
 +Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта,​ тем раньше запускается/​останавливается приложение). Это может быть критично,​ если ваше приложение будет зависит от каких-то сервисов.
 +
 +После того, как определились со скриптом запуска и очередностью,​ выполняем следующее :
 +<​code>​sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .</​code>​
 +Здесь я определил,​ что мой скриптик должен запускаться попозже остальных(70),​ и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.
 +
 +Если что-то не понравилось — все можно удалить
 +<​code>​sudo update-rc.d -f my_script remove</​code>​
 +
 +Подробности в ''​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''​. Например,​ строка
 +<​code>​post-up /​path/​to/​script.sh</​code>​
 +после включения сети выполнит скрипт //​script.sh//​. Подробнее можно почитать в ''​man interfaces''​.
 +
 +В любом случае на скрипт должны быть установлены права, разрешающие выполнение,​ иначе он не сможет запуститься.
 +
 +====== Ссылки ======
 +  * [[http://​forum.ubuntu.ru/​index.php?​topic=5755.msg44237|автозагрузка в ubuntu server ]] — оригинальная статья на форуме
  
 {{tag>​Скрипты tips}} {{tag>​Скрипты tips}}