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

Различия

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

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

Следующая версия
Предыдущая версия
Последняя версия Следующая версия справа и слева
wiki:создание_скрипта_автозапуска [2009/05/25 14:30]
создано
wiki:создание_скрипта_автозапуска [2010/12/30 07:14]
Строка 1: Строка 1:
-====== ​СКРИПТЫ: ​Создание своего скрипта автозапуска при загрузке======+====== Создание своего скрипта автозапуска при загрузке ​компьютера ​======
  
 Создаём пустой файл. Создаём пустой файл.
Строка 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 /​peth/​to/​script.sh</​code>​
 +после включения сети выполнит скрипт //​script.sh//​. Подробнее можно почитать в ''​man interfaces''​.
 +
 +В любом случае на скрипт должны быть установлены права, разрешающие выполнение,​ иначе он не сможет запуститься.
 +
 +====== Ссылки ======
 +  * [[http://​forum.ubuntu.ru/​index.php?​topic=5755.msg44237|автозагрузка в ubuntu server ]] — оригинальная статья на форуме
  
 {{tag>​Скрипты tips}} {{tag>​Скрипты tips}}