Cum se execută scripturi și comenzi pentru suspendare și reluare pe Linux

click fraud protection

Cel mai bun mod de a alerga script-uri iar comenzile pentru suspendare și reluare pe Linux înainte de suspendare (sau după reluare) este de a utiliza sistemul init init. Acest lucru se datorează faptului că sistemul init interacționează direct cu nucleul și cu sistemele de alimentare. Învățarea de a lucra cu acest instrument va permite oricărui utilizator să obțină mult control asupra sistemului de operare Linux,

Vă rugăm să înțelegeți că încurcarea cu sistemul init pe computer poate fi periculoasă dacă nu știți ce faceți. Asigurați-vă că urmați instrucțiunile din acest tutorial cât mai îndeaproape posibil, pentru a evita eventualele greșeli.

Nu orice distribuție modernă de Linux acceptă sistemul init de sistem. Unii folosesc în sus sau altceva în întregime. În acest tutorial, ne vom concentra pe sistem, deoarece este cel mai comun sistem de inițiere. Dacă doriți să îndepliniți această sarcină pentru ceva care nu rulează ceea ce acoperim în acest articol, luați în considerare instrucțiunile din manualul sistemului de operare pentru instrucțiuni.

instagram viewer

Notă: Utilizatorii Debian ar trebui să înlocuiască toate instanțele usr / lib / systemd / sistem de somn cu /lib/systemd/system-sleep/

Executarea unei comenzi înainte de suspendare

Pentru a rula un script înainte de suspendare, așezați orice fișier script bash în fișierul  /usr/lib/systemd/system-sleep/ director. Scripturile în sine pot face orice, dar există o anumită sintaxă la care trebuie respectate. Începeți prin deschiderea unei ferestre a terminalului. Utilizând sudo -s, câștigați o coajă rădăcină.

În continuare, creează editorul de text nano din directorul sistem-somn:

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

Adăugați shebang-ul la începutul scriptului. Adăugarea acestui lucru este critică și, fără ea, interpretul nu va putea citi corect codul și comenzile.

#! / Bin / bash /

Următoarea parte a scriptului este „dacă”. Acest lucru va spune sistemului de control al puterii că „dacă” sistemul este pe cale să renunțe la suspendare, ar trebui să se întâmple ceva. Lipiți codul de mai jos:

dacă ["$ {1}" == "pre"]; apoi. sh /path/to/script/to/run.sh

Schimbare sh /path/to/script/to/run.sh în scriptul la orice doriți să rulați pe computerul (sau serverul) Linux chiar înainte ca sistemul să se oprească pentru suspendare. Rețineți că nu trebuie să fie linia directă după „dacă” sh /path/to/script/to/run.sh. Puteți utiliza acest lucru pentru a executa diverse comenzi. Atâta timp cât bash îl poate recunoaște ca o comandă, va rula.

Ultima parte a scriptului „înainte de suspendare” este adăugarea porțiunii „altceva dacă”. Acest aspect al scriptului nu trebuie modificat, deoarece, în acest exemplu, ne este îngrijorat să facem ceva inainte de sistemul coboară și nu când se trezește.

elif ["$ {1}" == "postare"]; apoi. # nimic nu merge aici. Fi

Când s-a adăugat totul la fișier, apăsați Ctrl + O pentru a salva nano.

Executarea unei comenzi după reluare

Executarea unei comenzi după reluare funcționează la fel ca să rulezi ceva înainte de a suspenda. Singura diferență reală este în loc să adăugați o comandă după porțiunea „if” a scriptului, veți face ca partea cea mai importantă a codului să apară după linia „elif”.

Pentru a crea un script post-CV, mai întâi, adăugați shebang-ul ca primă linie.

#! Bin / bash

Pe linia următoare, adăugați porțiunea „dacă” a scriptului.

dacă ["$ {1}" == "pre"]; apoi. # nimic nu merge aici

Cu acel pic de cod lipit în scriptul bash, mutați-vă în jos și lipiți secțiunea „altceva dacă”.

elif ["$ {1}" == "postare"]; apoi. sh /path/to/script/to/run.sh. Fi

Încă o dată, este bine să scrii orice sub linia „elif”. Atâta timp cât este o operație normală de comandă systemd și bash o va rula.

Executarea comenzilor la pornire și reluare

Dacă doriți să executați două comenzi opuse; unul înainte de suspendare și unul la reluare, este posibil. Înseamnă doar personalizarea scriptului și adăugarea liniilor atât pe linia „if”, cât și pe linia „elseif”.

Ca de obicei, începe prin a posta shebang în scenariul pentru interpret.

#! / Bin / bash

Apoi, lipiți secțiunea if a codului.

dacă ["$ {1}" == "pre"]; apoi. # înlocuiți cu comanda

În caz că, înlocuiți „# înlocuiți cu comanda” cu orice comandă pe care doriți să o executați chiar înainte de a opri sistemul. Apoi, treceți la secțiunea „elif” și faceți la fel.

elif ["$ {1}" == "postare"]; apoi. # înlocuiți cu comanda. Fi

Salvați fișierul cu Ctrl + O,

Actualizarea autorizațiilor și utilizarea scriptului

Toate comenzile necesare se află în interiorul fișierului script, dar înainte de a putea rula, va trebui să actualizați permisiunile. Deschideți un terminal și câștigați rădăcină cu: su sau sudo -s. Atunci fa:

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

De acum înainte, ori de câte ori suspendați sau reluați, ar trebui să fie executate comenzi personalizate din interiorul scriptului.

Notă: aveți întrebări despre sistem-sistem de dormit? Verificați manualul cu man systemd-suspend.service.

watch instagram story