- - Як запускати сценарії та команди призупинення та відновлення в Linux

Як запускати сценарії та команди призупинити та відновити в Linux

Найкращий спосіб запуску скриптів і командпризупинити та відновити роботу в Linux перед тим, як призупинити (або після відновлення) використовувати систему systemd init. Це пов’язано з тим, що система init взаємодіє безпосередньо з ядром та енергосистемами. Навчитися працювати з цим інструментом дозволить будь-якому користувачеві отримати великий контроль над своєю операційною системою Linux,

Будь ласка, зрозумійте, що возитися з інітомСистема на вашому ПК може бути небезпечною, якщо ви не знаєте, що робите. Не забудьте дотримуватися інструкцій у цьому підручнику якомога ретельніше, щоб уникнути можливих випадків.

Не кожен сучасний дистрибутив Linux підтримуєsystemd система init. Деякі використовують спочатку або щось інше цілком. У цьому підручнику ми зупинимося на systemd, оскільки це найпоширеніша система ініціації. Якщо ви хочете виконати це завдання на тому, що не відповідає тому, що ми розглядаємо в цій статті, розгляньте інструкцію з експлуатаційної системи для отримання інструкцій.

Примітка: Користувачі Debian повинні замінити всі екземпляри usr / lib / systemd / system-сон з / lib / systemd / system-sleep /

Запуск команди перед призупиненням

Щоб запустити скрипт перед тим, як призупинити, помістіть будь-який файл сценарію bash у / usr / lib / systemd / system-sleep / каталог. Самі сценарії можуть робити що завгодно, але є певний синтаксис, якого слід дотримуватися. Почніть з відкриття вікна терміналу. Використовуючи sudo -s, наберіть кореневу оболонку.

Далі, вгору нано редактор тексту в каталозі сну системи:

nano /usr/lib/systemd/system-sleep/pre-suspend.sh

Додайте шебанг до початку сценарію. Додавання цього є критичним, і без цього перекладач не зможе правильно прочитати код і команди.

#!/bin/bash/

Наступна частина сценарію - "якщо". Це скаже системі управління потужністю, що "якщо" система зійде, щоб призупинити, щось має відбутися. Вставте код нижче:

if [ "${1}" == "pre" ]; then
sh /path/to/script/to/run.sh

Зміна sh /path/to/script/to/run.sh в сценарії до того, що ви хочете запустити на вашому ПК (або сервері) Linux безпосередньо до того, як система призупиниться. Майте на увазі, що рядок безпосередньо після "якщо" не повинен бути sh /path/to/script/to/run.sh. Ви також можете використовувати це для виконання різних команд. Поки bash може розпізнати його як команду, він буде працювати.

Остання частина сценарію "до призупинення" - це додавання частини "ще якщо". Цей аспект сценарію не потрібно змінювати, оскільки, у цьому прикладі, ми хвилюємося, що робити щось раніше система знижується, а не тоді, коли вона прокидається.

elif [ "${1}" == "post" ]; then
# nothing goes here
fi

Коли все буде додано у файл, натисніть Ctrl + O щоб зберегти нано.

Запуск команди після резюме

Виконання команди після резюме працює дуже схожезапустити щось перед тим, як призупинити. Єдина реальна відмінність - замість того, щоб додавати команду після частини сценарію "якщо", ви зробите найважливішу частину коду після рядка "elif".

Щоб створити сценарій після відновлення, спочатку додайте шебанг як перший рядок.

#!bin/bash

У наступному рядку додайте сценарій "якщо".

if [ "${1}" == "pre" ]; then
# nothing goes here

За допомогою цього біта коду, вставленого в скрипт bash, перемістіться вниз і вставте розділ "else if".

elif [ "${1}" == "post" ]; then
sh /path/to/script/to/run.sh
fi

Знову ж таки, добре писати що-небудь під рядком "elif". Поки це нормальна командна операція systemd і bash буде її виконувати.

Запуск команд при запуску та відновлення

Якщо ви хочете виконати дві протилежні команди; одинперед тим, як призупинити, і один при резюме, можливо. Це просто означає налаштування сценарію та додавання рядків як у рядку "якщо", так і в рядку "elseif".

Як зазвичай, почніть з розміщення шебангу в сценарії для перекладача.

#!/bin/bash

Далі вставте розділ if у коді.

if [ "${1}" == "pre" ]; then
# replace with command

У розділі "if" замініть команду "# zamjeно командою" будь-якою командою, яку ви хочете виконати безпосередньо до того, як система вийде з ладу. Потім перейдіть до розділу "elif" і зробіть те ж саме.

elif [ "${1}" == "post" ]; then
#  replace with command
fi

Збережіть файл за допомогою Ctrl + O,

Оновлення дозволів та використання сценарію

Усі необхідні команди знаходяться всередині файлу сценарію, але перш ніж він запуститься, вам потрібно оновити дозволи. Відкрийте термінал і отримайте корінь за допомогою: su або sudo -s. Потім зробіть:

chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh

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

Примітка: у вас є питання щодо системного сну системи? Перевірте інструкцію за допомогою людина systemd-suspend.service.

Коментарі