- - Ako spúšťať skripty a príkazy pri pozastavení a pokračovaní v systéme Linux

Ako spúšťať skripty a príkazy pri pozastavení a pokračovaní v systéme Linux

Najlepší spôsob, ako spúšťať skripty a príkazypozastavenie a pokračovanie v systéme Linux pred pozastavením (alebo po obnovení) je použitie systému init systému. Je to spôsobené skutočnosťou, že iniciačný systém interaguje priamo s jadrom a energetickými systémami. Naučiť sa pracovať s týmto nástrojom umožní každému užívateľovi získať veľkú kontrolu nad svojim operačným systémom Linux,

Prosím, pochopte, že správy s initsystém na vašom počítači môže byť nebezpečný, ak neviete, čo robíte. Uistite sa, že postupujte podľa pokynov v tomto návode čo najbližšie, aby ste predišli prípadným chybám.

Nie každá moderná distribúcia Linuxu podporujesystemd init system. Niektorí používajú úplne alebo niečo úplne iné. V tomto návode sa zameriame na systemd, pretože je to najbežnejší iniciačný systém. Ak hľadáte splnenie tejto úlohy pri niečom, čo nespúšťa to, čo je uvedené v tomto článku, zvážte pokyny v príručke k vášmu operačnému systému.

Poznámka: Používatelia Debianu by mali nahradiť všetky inštancie usr / lib / systemd / system-sleep s / Lib / systemd / system-sleep /

Spustenie príkazu pred pozastavením

Ak chcete spustiť skript pred pozastavením, umiestnite akýkoľvek súbor s bash skriptom do / Usr / lib / systemd / system-sleep / adresár. Skripty samotné môžu robiť čokoľvek, ale existuje určitá syntax, ktorú je potrebné dodržiavať. Začnite otvorením okna terminálu. Pomocou sudo-s získajte koreňový shell.

Ďalej v textovom editore nano v adresári system-sleep:

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

Pridajte shebang na začiatok skriptu. Pridanie tohto je kritické a bez neho nebude tlmočník schopný správne prečítať kód a príkazy.

#!/bin/bash/

Ďalšou časťou skriptu je „if“. Toto povedie systému riadenia napájania, že „ak“ sa systém chystá pozastaviť, malo by sa niečo stať. Vložte nasledujúci kód:

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

zmena sh /path/to/script/to/run.sh v skripte podľa toho, čo chcete na počítači so systémom Linux (alebo na serveri) spustiť tesne pred pozastavením systému. Majte na pamäti, že riadok hneď za slovom „ak“ nemusí byť sh /path/to/script/to/run.sh, Môžete tiež použiť na vykonanie rôznych príkazov. Pokiaľ ju bash dokáže rozpoznať ako príkaz, spustí sa.

Poslednou časťou skriptu „before suspend“ je pridanie časti „else if“. Tento aspekt skriptu sa nemusí meniť, pretože v tomto príklade sa obávame, že niečo urobíme pred systém klesá, a nie keď sa prebudí späť.

elif [ "${1}" == "post" ]; then
# nothing goes here
fi

Po pridaní všetkého do súboru stlačte Ctrl + O zachrániť nano.

Spustenie príkazu po pokračovaní

Vykonanie príkazu po pokračovaní funguje podobnebeží niečo pred pozastavením. Jediným skutočným rozdielom je, že namiesto pridania príkazu za časť „if“ skriptu by ste najdôležitejšiu časť kódu urobili za riadkom „elif“.

Ak chcete vytvoriť skript po pokračovaní, najskôr ako prvý riadok pridajte shebang.

#!bin/bash

Na ďalší riadok pridajte časť skriptu „if“.

if [ "${1}" == "pre" ]; then
# nothing goes here

S týmto kúskom kódu vloženým do bash skriptu sa presuňte nadol a vložte časť „else if“.

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

Opäť je v poriadku napísať čokoľvek pod riadok „elif“. Pokiaľ je to normálna operácia príkazu, systém a bash ju spustia.

Spúšťanie príkazov pri spustení a obnovení

Ak chcete spustiť dva opačné príkazy; jedenpred pozastavením a jeden pri pokračovaní je to možné. Znamená to iba prispôsobenie skriptu a pridanie riadkov pod riadok ‘if well, ako aj za riadok„ elseif “.

Ako obvykle začnite zverejňovaním shebangu v skripte pre tlmočníka.

#!/bin/bash

Potom prilepte časť kódu if.

if [ "${1}" == "pre" ]; then
# replace with command

V prípade, že nahraďte „# nahradiť príkazom“ ľubovoľným príkazom, ktorý chcete spustiť, skôr ako systém spadne. Potom prejdite do časti „elif“ a urobte to isté.

elif [ "${1}" == "post" ]; then
#  replace with command
fi

Uložte súbor pomocou klávesov Ctrl + O,

Aktualizácia oprávnení a používanie skriptu

Všetky potrebné príkazy sú vo vnútri súboru skriptu, ale skôr, ako sa spustí, musíte aktualizovať povolenia. Otvorte terminál a získajte root pomocou: su alebo sudo -s. Potom urobte:

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

Odteraz by sa vždy, keď pozastavíte alebo obnovíte, mali spúšťať vlastné príkazy v skripte.

Poznámka: Máte otázky týkajúce sa spánku systému? Skontrolujte príručku pomocou man systemd-suspend.service.

Komentáre