Kako izvajati skripte in ukaze za zaustavitev in nadaljevanje v Linuxu

click fraud protection

Najboljši način za tek skripte in ukazi za zaustavitev in nadaljevanje v Linuxu pred zaustavitvijo (ali po nadaljevanju) uporabljajo sistemd init sistem. To je posledica dejstva, da sistem init neposredno komunicira z jedrom in napajalnimi sistemi. Učenje dela s tem orodjem bo vsakemu uporabniku omogočilo veliko nadzora nad svojim operacijskim sistemom Linux,

Prosimo, razumejte, da je lahko zajebavanje s sistemom init v računalniku nevarno, če ne veste, kaj počnete. Upoštevajte navodila v tej vadnici čim natančneje, da se izognete morebitnim napakam.

Ni vsaka sodobna distribucija Linuxa podprta sistemd init sistem. Nekateri uporabljajo navidezno ali kaj drugega v celoti. V tej vadnici se bomo osredotočili na systemd, saj gre za najpogostejši sistem iniciacije. Če želite to nalogo opraviti v nečem, kar ne vsebuje tistega, kar smo opisali v tem članku, preglejte navodila za uporabo svojega operacijskega sistema.

Opomba: Uporabniki Debiana bi morali nadomestiti vse primerke usr / lib / systemd / sistem-spanje s /lib/systemd/system-sleep/

instagram viewer

Izvajanje ukaza pred prekinitvijo

Če želite zagnati skript pred prekinitvijo, v datoteko skripta bash vstavite v  /usr/lib/systemd/system-sleep/ imenik. Sami skripti lahko storijo karkoli, vendar obstaja določena skladnja, ki se je je treba držati. Začnite z odpiranjem terminala. Z uporabo sudo -s pridobite korensko lupino.

Nato nadaljujte urejevalnik besedil nano v imeniku spanja sistema:

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

Na začetek scenarija dodajte shebang. Dodajanje tega je kritičnega pomena in brez njega tolmač ne bo mogel pravilno prebrati kode in ukazov.

#! / bin / bash /

Naslednji del skripta je "če". To bo povedalo sistemu za nadzor moči, da se mora "zgoditi, da se sistem zaustavi, da se zaustavi." Spodaj prilepite kodo:

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

Spremeni se sh /path/to/script/to/run.sh v skriptu, kar želite zagnati na vašem osebnem računalniku Linux (ali strežniku), preden se sistem začasno ustavi. Upoštevajte, da vrstica neposredno za "če" ne potrebuje sh /path/to/script/to/run.sh. To lahko uporabite tudi za izvajanje različnih ukazov. Dokler ga bash lahko prepozna kot ukaz, se bo izvajal.

Zadnji del skripte "pred začasno ustavitvijo" je dodajanje dela "sicer če". Ta vidik skripte ni treba spreminjati, saj nas v tem primeru skrbi, da bomo kaj storili prej sistem gre navzdol in ne, ko se zbudi nazaj.

elif ["$ {1}" == "objava"]; torej. # nič ne gre tukaj. fi

Ko je vse dodano datoteki, pritisnite Ctrl + O prihraniti nano.

Zagon ukaza po nadaljevanju

Izvajanje ukaza po nadaljevanju deluje podobno kot zagon nekaj pred prekinitvijo. Edina resnična razlika je namesto dodajanja ukaza po delu skripta "če", najpomembnejši del kode se pojavi po vrstici "elif".

Če želite narediti skript za nadaljevanje nadaljevanja, najprej dodajte shebang kot prvo vrstico.

#! koša / bash

V naslednji vrstici dodajte scenarij "če".

if ["$ {1}" == "pred"]; torej. # nič ne gre tukaj

S tem delom kode, ki ste jo prilepili v bash skript, se premaknite navzdol in prilepite razdelek »else if«.

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

Še enkrat je v redu, če pišete kar koli pod črto "elif". Dokler gre za normalno operacijo ukaza systemd in bash ga bo izvajal.

Zagon ukazov ob zagonu in nadaljevanju

Če želite zagnati dva nasprotna ukaza; enega pred odložitvijo in enega ob ponovnem nadaljevanju, je možno. Pomeni samo prilagajanje skripta in dodajanje vrstic tako v vrstici "če" kot tudi v vrstici "elseif".

Kot običajno, začnite z objavo shebanga v skriptu za tolmača.

#! / bin / bash

Nato prilepite razdelek if.

if ["$ {1}" == "pred"]; torej. # zamenjaj z ukazom

V tem primeru nadomestite »# substitu with command« s katerim koli ukazom, ki ga želite zagnati, preden se sistem spusti. Nato se pomaknite na razdelek "elif" in naredite isto.

elif ["$ {1}" == "objava"]; torej. # zamenjaj z ukazom. fi

Shranite datoteko s Ctrl + O,

Posodabljanje dovoljenj in uporaba skripta

Vsi potrebni ukazi so znotraj datoteke skripta, vendar preden se lahko zažene, morate posodobiti dovoljenja. Odprite terminal in pridobite root s: su ali sudo -s. Nato naredite:

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

Od zdaj naprej bi se morali vsakič, ko začasno prekinete ali nadaljujete, izvajati ukaze po meri znotraj skripta.

Opomba: imate vprašanja o sistemskem spanju? Preverite priročnik s človek systemd-suspend.service.

watch instagram story