Geriausias būdas paleisti scenarijus ir komandassustabdyti ir atnaujinti „Linux“ prieš sustabdant (arba atnaujinus) yra naudoti „systemd init“ sistemą. Taip yra dėl to, kad init sistema tiesiogiai sąveikauja su branduoliu ir maitinimo sistemomis. Išmokimas dirbti su šiuo įrankiu leis bet kuriam vartotojui daug kontroliuoti savo „Linux“ operacinę sistemą,
Prašau suprasti, kad nesąmonė su iniciasistema jūsų kompiuteryje gali būti pavojinga, jei nežinote, ką darote. Kad išvengtumėte galimų nesėkmių, būtinai kuo atidžiau vykdykite šio vadovo nurodymus.
Ne kiekvienas šiuolaikinis Linux paskirstymas palaikosisteminė init sistema. Kai kurie visiškai naudoja „upstart“ ar dar ką nors. Šiame vadove dėmesys bus sutelktas į sisteminę įrangą, nes tai yra labiausiai paplitusi inicijavimo sistema. Jei norite atlikti šią užduotį dėl to, kas neatlieka to, ką aprašome šiame straipsnyje, pagalvokite apie operacinės sistemos vadovą, kuriame pateikiamos instrukcijos.
Pastaba: Debian'o vartotojai turėtų pakeisti visus egzempliorių atvejus usr / lib / systemd / system-sleep su / lib / systemd / sistemos miegas /
Komandos vykdymas prieš sustabdant
Norėdami paleisti scenarijų prieš sustabdymą, įdėkite bet kurį bash scenarijaus failą į / usr / lib / systemd / sistemos miegas / katalogą. Patys scenarijai gali padaryti bet ką, tačiau yra tam tikra sintaksė, kurios reikia laikytis. Pirmiausia atidarykite terminalo langą. Naudodamiesi sudo, įgykite šaknies apvalkalą.
Kitas, iki nano teksto rengyklės sistemos „miego“ kataloge:
nano /usr/lib/systemd/system-sleep/pre-suspend.sh
Prie scenarijaus pradžios pridėkite skiautelę. Pridėti tai yra labai svarbu, ir be jo vertėjas negalės teisingai perskaityti kodo ir komandų.
#!/bin/bash/
Kita scenarijaus dalis yra „jei“. Tai pasakys galios valdymo sistemai, kad „jei“ sistema nustos sustoti, kažkas turėtų įvykti. Įklijuokite kodą žemiau:
if [ "${1}" == "pre" ]; then sh /path/to/script/to/run.sh
Keisti sh /path/to/script/to/run.sh scenarijuje, kad ir ką norėtumėte paleisti „Linux“ asmeniniame kompiuteryje (arba serveryje) prieš pat sistemai laikinai sustabdant. Atminkite, kad eilutės tiesiai po „jei“ nereikia būti sh /path/to/script/to/run.sh. Taip pat galite naudoti tai vykdydami įvairias komandas. Kol bashas atpažins jį kaip komandą, jis veiks.
Paskutinė scenarijaus „prieš sustabdymą“ dalis pridedama dalis „kitaip, jei“. Šis scenarijaus aspektas nereikia modifikuoti, nes šiame pavyzdyje mes nerimaujame dėl kažko prieš tai sistema eina žemyn, o ne tada, kai atsibunda.
elif [ "${1}" == "post" ]; then # nothing goes here fi
Kai viskas bus pridėta prie failo, paspauskite „Ctrl“ + O išsaugoti nano.
Komandos vykdymas po atnaujinimo
Komandos vykdymas po atnaujinimo veikia panašiaikažkas paleisti prieš sustabdant. Vienintelis tikras skirtumas yra tai, kad ne pridedate komandos po scenarijaus „if“ dalimi, bet svarbiausią kodo dalį pateiktumėte po eilute „elif“.
Norėdami sukurti scenarijų po atnaujinimo, pirmiausia pridėkite skiauterę kaip pirmąją eilutę.
#!bin/bash
Kitoje eilutėje pridėkite scenarijaus dalį „jei“.
if [ "${1}" == "pre" ]; then # nothing goes here
Įdėdami tą bitų kodą į bash scenarijų, pereikite žemyn ir įklijuokite skyrių „else if“.
elif [ "${1}" == "post" ]; then sh /path/to/script/to/run.sh fi
Dar kartą sakoma, kad ką nors rašyti po eilute „elif“. Kol tai bus normali komandinė operacija, sistema bash ją vykdys.
Komandų vykdymas paleidžiant ir atnaujinant veiksmus
Jei norėtumėte paleisti dvi priešingas komandas; vienasprieš sustabdymą ir vieną atnaujinus, tai įmanoma. Tai tiesiog reiškia scenarijaus pritaikymą ir eilučių pridėjimą tiek prie eilutės „jei“, tiek prie „elseif“.
Kaip įprasta, pradėkite nuo to, kad pateiktumėte skiautelę į vertėjo scenarijų.
#!/bin/bash
Tada įklijuokite kodo skyrių „if“.
if [ "${1}" == "pre" ]; then # replace with command
Jei ne, pakeiskite „# Pakeisti komanda“ bet kuria komanda, kurią norėtumėte paleisti prieš pat sistemai sumažinant. Tada pereikite prie „elif“ skyriaus ir darykite tą patį.
elif [ "${1}" == "post" ]; then # replace with command fi
Įrašykite failą naudodami „Ctrl“ + O,
Leidimų atnaujinimas ir scenarijaus naudojimas
Visos būtinos komandos yra scenarijaus failo viduje, tačiau, kad jis būtų paleistas, turėsite atnaujinti leidimus. Atidarykite terminalą ir įsigykite šaknis naudodami: su arba sudo -s. Tada darykite:
chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh
Nuo šiol kiekvieną kartą, kai sustabdysite ar atnaujinsite, scenarijaus viduje turėtų būti vykdomos pasirinktos komandos.
Pastaba: turite klausimų apie sisteminį miego režimą? Patikrinkite vadovą naudodamiesi vyras systemd-suspend.service.
Komentarai