- - Как да стартирате скриптове и команди при спиране и възобновяване на Linux

Как да стартирате скриптове и команди при спиране и възобновяване на Linux

Най-добрият начин за стартиране на скриптове и командиспиране и възобновяване на Linux, преди спирането (или след възобновяването) е да се използва системата systemit init. Това се дължи на факта, че системата init взаимодейства директно с ядрото и захранващите системи. Научаването да работи с този инструмент ще позволи на всеки потребител да получи много контрол върху своята операционна система Linux,

Моля, разберете, че бъркате с initсистема на вашия компютър може да бъде опасна, ако не знаете какво правите. Не забравяйте да следвате инструкциите в този урок възможно най-внимателно, за да избегнете евентуални злополуки.

Не всяка съвременна дистрибуция на Linux поддържаsystemd init система. Някои използват upstart или нещо друго изцяло. В този урок ще се съсредоточим върху systemd, тъй като това е най-разпространената система за инициация. Ако искате да изпълните тази задача върху нещо, което не изпълнява това, което обхващаме в тази статия, помислете за справка в ръководството на вашата операционна система.

Забележка: Потребителите на Debian трябва да заменят всички случаи на ЮЕсАр / ИЪ / systemd / системата сън с / ИЪ / systemd / системата сън /

Изпълнение на команда преди спиране

За да стартирате скрипт преди да спрете, поставете всеки файл на скрипт на bash в / ЮЕсАр / ИЪ / systemd / системата сън / директория. Самите скриптове могат да правят всичко, но има определен синтаксис, който трябва да се спазва. Започнете с отваряне на терминален прозорец. Използвайки sudo -s, спечелете коренова обвивка.

След това, нагоре нано текстовия редактор в директорията за заспиване на системата:

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

Добавете shebang в началото на сценария. Добавянето на това е от решаващо значение и без него преводачът няма да може да прочете правилно кода и командите.

#!/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“.

За да направите скрипт след възобновяване, първо добавете shebang като първи ред.

#!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“.

Както обикновено, започнете, като публикувате shebang в сценария за преводача.

#!/bin/bash

След това поставете секцията if на кода.

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

Под ако заменете „# замени с команда“ с каквато и команда, която искате да изпълните веднага, преди системата да се спусне. След това преминете към секцията „elif“ и направете същото.

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

Запазете файла с Ctrl + O,

Актуализиране на разрешения и използване на скрипта

Всички необходими команди са вътре в скрипт файла, но преди да може да се изпълни, ще трябва да актуализирате разрешенията. Отворете терминал и получете root с: su или sudo -s. След това направете:

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

Отсега нататък, когато спрете или възобновите, персонализираните команди вътре в скрипта трябва да се изпълняват.

Забележка: имате въпроси относно системния режим на заспиване? Проверете ръководството с man systemd-suspend.service.

Коментари