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