Labākais veids, kā palaist skriptus un komandasapturēt un atsākt operētājsistēmā Linux, pirms apturēšanas (vai pēc atsākšanas) ir jāizmanto systemd init sistēma. Tas ir saistīts ar faktu, ka init sistēma tieši mijiedarbojas ar kodolu un energosistēmām. Mācīšanās strādāt ar šo rīku ļaus jebkuram lietotājam iegūt daudz kontroles pār savu Linux operētājsistēmu,
Lūdzu, saprotiet, ka sajaukšanās ar inicdatora sistēma var būt bīstama, ja nezināt, ko darāt. Pārliecinieties, lai pēc iespējas precīzāk ievērotu šīs apmācības instrukcijas, lai izvairītos no iespējamām kļūmēm.
Ne katrs mūsdienu Linux izplatījums atbalstasistēmad inic sistēma. Daži pilnībā izmanto augšupvērstu vai kaut ko citu. Šajā apmācībā uzmanība tiks pievērsta sistēmai, jo tā ir visizplatītākā iniciēšanas sistēma. Ja vēlaties paveikt šo uzdevumu ar kaut ko tādu, kas nedarbojas šajā rakstā aprakstītajā gadījumā, apsveriet instrukcijas operētājsistēmas rokasgrāmatā.
Piezīme: Debian lietotājiem ir jāaizstāj visi gadījumi usr / lib / systemd / system-sleep ar / lib / systemd / system-sleep /
Komandas vadīšana pirms apturēšanas

Lai palaistu skriptu pirms apturēšanas, ievietojiet jebkuru bash skripta failu / usr / lib / systemd / system-sleep / direktoriju. Paši skripti var darīt jebko, bet ir jāievēro noteikta sintakse. Sāciet ar termināļa loga atvēršanu. Izmantojot sudo-s, iegūstiet saknes apvalku.
Pēc tam augšup nano teksta redaktoru sistēmas miega režīmā:
nano /usr/lib/systemd/system-sleep/pre-suspend.sh
Pievienojiet skriptu skripta sākumam. Tas ir svarīgi pievienot, un bez tā tulks nespēs pareizi nolasīt kodu un komandas.
#!/bin/bash/
Nākamā skripta daļa ir “ja”. Tas jaudas vadības sistēmai pateiks, ka, ja sistēma gatavojas apturēt darbību, kaut kam jānotiek. Ielīmējiet kodu zemāk:
if [ "${1}" == "pre" ]; then sh /path/to/script/to/run.sh
Pārmaiņas sh /path/to/script/to/run.sh skriptā jebkuram, ko vēlaties palaist Linux datorā (vai serverī) tieši pirms sistēmas darbība tiek apturēta. Paturiet prātā, ka līnijai tieši aiz “if” nav jābūt sh /path/to/script/to/run.sh. To var izmantot arī dažādu komandu izpildei. Kamēr bash to atpazīs kā komandu, tas darbosies.
Skripta “pirms apturēt” pēdējā daļa ir jāpievieno daļai “else if”. Šis skripta aspekts nav jāmaina, jo šajā piemērā mēs uztraucamies par kaut ko pirms tam sistēma iet uz leju, nevis tad, kad pamostas atpakaļ.
elif [ "${1}" == "post" ]; then # nothing goes here fi
Kad viss ir pievienots failam, nospiediet Ctrl + O lai saglabātu nano.
Komandas vadīšana pēc atsākšanas

Komandas izpilde pēc atsākšanas darbojas līdzīgikaut ko palaist pirms apturēšanas. Vienīgā reālā atšķirība ir tā, ka komanda nav pievienojama pēc skripta daļas “ja”, bet svarīgākā koda daļa jāatstāj aiz “elif” rindas.
Lai izveidotu skriptu pēc atsākšanas, vispirms pievienojiet shebang kā pirmo rindu.
#!bin/bash
Nākamajā rindā pievienojiet skripta daļu “ja”.
if [ "${1}" == "pre" ]; then # nothing goes here
Ar šo mazliet koda ielīmējot bash skriptu, pārvietojieties uz leju un ielīmējiet sadaļu “else if”.
elif [ "${1}" == "post" ]; then sh /path/to/script/to/run.sh fi
Atkal ir pareizi rakstīt jebko zem rindas “elif”. Kamēr tā ir normāla komandu operētājsistēma, un bash to darbinās.
Komandu izpilde startējot un atsākšana

Ja vēlaties izpildīt divas pretējas komandas; vienspirms apturēšanas un pēc viena atsākšanas tas ir iespējams. Tas nozīmē tikai skripta pielāgošanu un rindu pievienošanu gan rindiņai “ja”, gan arī “elseif”.
Tāpat kā parasti, sāciet, ievietojot shebang tulka skriptā.
#!/bin/bash
Pēc tam ielīmējiet koda sadaļu if.
if [ "${1}" == "pre" ]; then # replace with command
Ja ir aizvietots, aizstājiet “# aizstāt ar komandu” ar jebkuru komandu, kuru vēlaties palaist tieši pirms sistēmas darbība samazinās. Pēc tam pārejiet uz sadaļu “elif” un rīkojieties tāpat.
elif [ "${1}" == "post" ]; then # replace with command fi
Saglabājiet failu ar taustiņu kombināciju Ctrl + O,
Atļauju atjaunināšana un skripta lietošana
Visas nepieciešamās komandas atrodas skripta failā, taču, pirms tas var darboties, jums ir jāatjaunina atļaujas. Atveriet terminālu un iegūstiet saknes ar: su vai sudo -s. Tad dariet:
chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh
Turpmāk, katru reizi pārtraucot vai atsākot, skripta iekšpusē vajadzētu palaist pielāgotas komandas.
Piezīme: vai jums ir jautājumi par sistēmas miega režīmu? Pārbaudiet rokasgrāmatu ar cilvēks systemd-suspend.service.
Komentāri