Виконання скрипта при запуску або виключенні linux

Виконання скрипта при запуску або виключенні linux

Скрипт для легкої установки і настройки web сервера на ubuntu

Скрипт автоматичної установки і настройки сервера на ubuntu. Є пункт для зручного додавання нових сайтів.

Виконання скрипта при запуску або виключенні linux

Різні шпалери на різних моніторах в ubuntu

Установка різних шпалер для різних моніторів. Спосіб тестувався на ubuntu, але повинен працювати у всіх системах, включаючи windows і mac.

Виконання скрипта при запуску або виключенні linux

Автоматичне монтування яндекс диска в linux

Детальна інструкція, як змусити автоматично при завантаженні підключати яндекс диск до папки на локальному комп'ютері в linux.

Блог про налаштування та встановлення ПЗ для lnux з пріоретет на ubuntu. Статті носять просту мову, яка зрозуміла новачкам.

Виконання скрипта при запуску або виключенні linux
Якщо на питання: «як додати програму в автозавантаження?» - починаючі користувачі знаходять відповідь досить швидко, то питання про запуск скрипта, при виключенні / перезавантаження, ставить їх в глухий кут. У статті буде описаний стандартний спосіб для автоматичного виконання команд при включенні і виключенні linux, а також більш простий спосіб для користувачів, у яких встановлено gdm і графічний інтерфейс, наприклад ubuntu.

Консольний варіант.

Трохи теорії.
Слід знати, що в Linux існує 7 рівнів запуску. Однак, використовуватися можуть тільки 6.
Як у всіх поважаючих себе програм відлік починається з 0-ля.
0 - Зупинка або вимикання системи.
1 - Однокористувацький режим.
2 - багато користувачів режим, але без підтримки мережі.
3 - Теж саме, але з мережею.
4 - Додали для краси Чи не використовується.
5 - Графічний режим із завантаженням X сервера.
6 - Перезавантаження.
Якщо перейти в папку / etc (В деяких дистрибутивах /etc/rc.d) то можна побачити папки з 7-ма рівнями запуску.

Виконання скрипта при запуску або виключенні linux

Наприклад при виключенні комп'ютера, виконаються всі скрипти з папки rc0.d
Виконання скрипта при запуску або виключенні linux

Тут слід зупиниться по докладніше. Справа в тому, що самих скриптів (а точніше сценаріїв) в цій папці немає, а є тільки посилання на файли, які лежать в папці /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.

sudo nano /etc/rc.local

І поміщаємо наші команди трохи вище рядки з exit 0.
Для того, що б команди виконувалися перед вимиканням або перезавантаженням нам потрібно створити сценарій в папці /etc/init.d

sudo nano /etc/init.d/імя_сценарія

Вставляємо наступний код:


#! / Bin / sh
case "$ 1" in
start)
echo "поданий сигнал start"
;;
stop)
echo "поданий сигнал stop"
;; esac

Тепер робимо файл виконуваним:

sudo chmod + x /etc/init.d/імя_сценарія

Створити посилання можна вручну, але простіше це зробити через команду update-rc.d
наприклад:

sudo update-rc.d імя_сценарія start 20 0 6. stop 1 0 6.

Точки важливі (обидві). Досліджуючи простори інтернету, у мене склалося враження, що синтаксис цієї програми іноді змінюється. Актуальні приклади можна подивитися по команді «man update-rc.d». Приклади будуть в низу.

Ця команда створить по 2 посилання в каталогах / etc / rc0 .d (друге число в команді) і / etc / rc6 .d (третє число в команді). Причому спочатку буде виконуватися сценарій з параметром stop (тому що коштує 1), а вже потім з параметром start (тому що коштує 20).
Якщо другий параметр не потрібен, то можна виконати команду:

sudo update-rc.d імя_сценарія stop 1 0 6.

Раджу ставити пріоритет вище (тобто число після start або stop має бути маленьким), бажано менше 20. У зворотному випадку у мене іноді зависав комп'ютер при спробі перезавантажитися.

Для користувачів ubuntu, та й багатьох інших сучасних дистрибутивів з gdm можна скористатися ...

Графічний варіант.

Що стосується автозавантаження то можна скористатися способом описаним тут.
Або просто відкрити «автоматично запускаються» командою:

Прямо над рядком exit 0.

Схожі статті