Cel mai bun mod de a rula scripturi și comenzisuspendarea și reluarea pe Linux înainte de a suspenda (sau după reluare) înseamnă 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ă încurcați cu inițiativasistemul de pe computer poate fi periculos 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ăsystemd init 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.
Notă: Utilizatorii Debian ar trebui să înlocuiască toate instanțele usr / lib / systemd / sistem de somn cu / Lib / systemd / sistem de somn /
Executarea unei comenzi înainte de suspendare

Pentru a rula un script înainte de suspendare, plasați orice fișier bash script în / Usr / lib / systemd / sistem de somn / director. Scripturile în sine pot face orice, dar există o anumită sintaxă la care trebuie respectate. Începeți prin deschiderea unei ferestre a terminalului. Folosind 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:
if [ "${1}" == "pre" ]; then sh /path/to/script/to/run.sh
Schimbare sh /path/to/script/to/run.sh în scriptul pentru 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ă, acesta 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}" == "post" ]; then # nothing goes here 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 felrulează 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 cea mai importantă parte 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.
if [ "${1}" == "pre" ]; then # nothing goes here
Cu acel pic de cod lipit în scriptul bash, mutați-vă jos și lipiți secțiunea „altceva dacă”.
elif [ "${1}" == "post" ]; then sh /path/to/script/to/run.sh fi
Încă o dată, este OK să scrie 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; unuînainte de suspendare și una 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.
if [ "${1}" == "pre" ]; then # replace with command
În caz că, înlocuiți „# înlocuiți cu comanda” cu orice comandă pe care doriți să o executați chiar înainte de oprirea sistemului. Apoi, treceți la secțiunea „elif” și faceți la fel.
elif [ "${1}" == "post" ]; then # replace with command 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.
Comentarii