- - Hogyan lehet futtatni a parancsfájlokat és a parancsokat a felfüggesztés és a folytatás Linux rendszeren

Hogyan lehet futtatni a parancsfájlokat és a parancsokat a felfüggesztéshez és a folytatáshoz Linuxon?

A parancsfájlok és parancsok futtatásának legjobb módjafelfüggesztés és folytatás Linux rendszeren, mielőtt a felfüggesztést (vagy folytatást követően) a systemd init rendszer használatát jelenti. Ennek oka az a tény, hogy az init rendszer közvetlenül kölcsönhatásba lép a kerneltel és az energiaellátó rendszerekkel. Ha megtanulja használni ezt az eszközt, akkor minden felhasználó számára sok ellenőrzés elérhetővé válhat Linux operációs rendszerük felett,

Kérem, értse meg az init-rel való összezavarodástA számítógépes rendszer veszélyes lehet, ha nem tudja, mit csinál. A lehetséges balesetek elkerülése érdekében a lehető legpontosabban kövesse az útmutatóban szereplő utasításokat.

Nem minden modern Linux disztribúció támogatja asystemd init rendszer. Néhányan felfelé használja vagy valami mást. Ebben az oktatóanyagban a rendszerre összpontosítunk, mivel ez a leggyakoribb kezdeményezési rendszer. Ha ezt a feladatot olyan feladatok elvégzésével akarja elvégezni, amelyek nem futtatják azt, amit ebben a cikkben tárgyalunk, akkor érdemes átnéznie az operációs rendszer kézikönyvét.

Megjegyzés: A Debian felhasználóknak ki kell cserélniük az összes példányt usr / lib / systemd / system-alvás val vel / Lib / systemd / system-sleep /

Parancs futtatása felfüggesztés előtt

A szkript futtatásához a felfüggesztés előtt helyezze el a bash szkriptfájlokat a / Usr / lib / systemd / system-sleep / Könyvtár. Maguk a szkriptek bármit megtehetnek, de van egy bizonyos szintaxis, amelyet be kell tartani. Először nyisson meg egy terminál ablakot. A sudo-k segítségével szerezzen be egy gyökérhéjat.

Ezután a nano szövegszerkesztőben felfelé a rendszer alvás könyvtárában:

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

Adja hozzá a shebangot a szkript elejéhez. Ennek hozzáadása kritikus fontosságú, és anélkül a tolmács nem fogja tudni megfelelően elolvasni a kódot és a parancsokat.

#!/bin/bash/

A szkript következő része az „if”. Ez azt mondja az energiaszabályozó rendszernek, hogy „ha” a rendszer felfüggesztésre készül, valami történjen. Illessze be az alábbi kódot:

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

változás sh /path/to/script/to/run.sh a parancsfájlban, bármihez is, amelyet futtatni szeretne Linux PC-jén (vagy szerverén), még mielőtt a rendszer leáll. Ne feledje, hogy a sornak közvetlenül az „if” után nem kell lennie sh /path/to/script/to/run.sh. Ezt különféle parancsok végrehajtására is felhasználhatja. Mindaddig, amíg a bash felismeri parancsként, addig is fut.

A „felfüggesztés előtt” szkript utolsó része a „else if” rész hozzáadása. A szkriptnek ezt a aspektusát nem kell módosítani, mivel ebben a példában aggódunk valamit előtt a rendszer lemegy, és nem akkor, amikor újra felébred.

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

Amikor mindent hozzáadtak a fájlhoz, nyomja meg a gombot Ctrl + O hogy megmentse a nano-t.

Parancs futtatása folytatása után

A parancs folytatása a folytatás után hasonlóan működikfuttasson valamit felfüggesztés előtt. Az egyetlen valódi különbség az, ha a parancs hozzáadása a szkript „if” része után van, a kód legfontosabb részét az „elif” sor után kell megtenni.

Folytatás utáni szkript készítéséhez először adja hozzá a shebang mint első sort.

#!bin/bash

A következő sorban adja hozzá a szkript „if” részét.

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

Ezzel a kis kóddal beillesztve a bash szkriptbe, mozgassa lefelé és illessze be a „else if” részt.

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

Megint rendben van, hogy bármit megírunk az „elif” sor alatt. Mindaddig, amíg ez egy normál parancs operációs rendszer, és a bash futtatja azt.

Parancsok futtatása indításkor és folytatása

Ha két ellentétes parancsot szeretne futtatni; egyfelfüggesztés előtt és egy folytatása előtt lehetséges. Ez csak azt jelenti, hogy testreszabjuk a szkriptet, és sorokat adunk hozzá mind az 'if', mind a 'elseif' sor alá.

Mint általában, kezdje el azzal, hogy a shebangot beilleszti a tolmács szkriptébe.

#!/bin/bash

Ezután illessze be a kód if részét.

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

Ha az „If” alatt cserélje ki a „# csere paranccsal” parancsot bármelyik paranccsal, amelyet futtatni szeretne közvetlenül a rendszer leállása előtt. Ezután lépjen az „elif” szakaszra, és tegye ugyanezt.

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

Mentse a fájlt a Ctrl + O gombbal,

Engedélyek frissítése és a parancsfájl használata

Az összes szükséges parancs megtalálható a szkriptfájlban, de mielőtt futtathatja, frissítenie kell az engedélyeket. Nyisson meg egy terminált, és gyökerezzen a következők segítségével: su vagy sudo -s. Akkor csináld:

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

Mostantól kezdve, amikor felfüggeszti vagy folytatja, az egyéni parancsoknak a szkript belsejében kell futniuk.

Megjegyzés: kérdése van a rendszeres rendszer-alvással kapcsolatban? Ellenőrizze a kézikönyvet a man systemd-suspend.service.

Hozzászólások