Nejlepší způsob, jak spouštět skripty a příkazypozastavení a obnovení v systému Linux před pozastavením (nebo po obnovení) je použití systému init systému. Důvodem je skutečnost, že iniciační systém interaguje přímo s jádrem a energetickými systémy. Naučit se pracovat s tímto nástrojem umožní každému uživateli získat velkou kontrolu nad svým operačním systémem Linux,
Prosím, pochopte, že zprávy s initsystém na vašem PC může být nebezpečný, pokud nevíte, co děláte. Nezapomeňte postupovat podle pokynů v tomto návodu co nejpřesněji, abyste se vyhnuli případným chybám.
Ne každá moderní linuxová distribuce podporujesystemd init system. Někteří používají upstart nebo něco úplně jiného. V tomto tutoriálu se zaměříme na systemd, protože je to nejběžnější iniciační systém. Pokud chcete tento úkol splnit u něčeho, co nespouští to, na co se vztahuje tento článek, zvažte pokyny v příručce k operačnímu systému.
Poznámka: Uživatelé Debianu by měli nahradit všechny instance usr / lib / systemd / system-sleep s / lib / systemd / system-sleep /
Spuštění příkazu před pozastavením
Chcete-li skript spustit před pozastavením, umístěte do souboru libovolný soubor bash skriptu / usr / lib / systemd / system-sleep / adresář. Skripty samy o sobě mohou dělat cokoli, ale existuje určitá syntaxe, kterou je třeba dodržovat. Začněte otevřením okna terminálu. Pomocí sudo -s získejte kořenový shell.
Dále, nahoru nano textový editor uvnitř adresáře system-sleep:
nano /usr/lib/systemd/system-sleep/pre-suspend.sh
Přidejte shebang na začátek skriptu. Přidání této hodnoty je kritické a bez ní nebude tlumočník schopen správně přečíst kód a příkazy.
#!/bin/bash/
Další část skriptu je „if“. Řekne to systému řízení výkonu, že „pokud“ se systém chystá pozastavit, mělo by se něco stát. Vložte níže uvedený kód:
if [ "${1}" == "pre" ]; then sh /path/to/script/to/run.sh
Změna sh /path/to/script/to/run.sh ve skriptu na cokoli, co byste chtěli spustit na vašem Linuxovém PC (nebo serveru) těsně před tím, než systém přejde k pozastavení. Mějte na paměti, že řádek přímo za „pokud“ nemusí být sh /path/to/script/to/run.sh. Můžete také použít k provádění různých příkazů. Dokud ji bash dokáže rozpoznat jako příkaz, bude spuštěn.
Poslední částí skriptu „before suspend“ je přidání části „else if“. Tento aspekt skriptu není třeba upravovat, protože v tomto příkladu se obáváme něco dělat před systém klesá a ne, když se probudí zpět.
elif [ "${1}" == "post" ]; then # nothing goes here fi
Po přidání všeho do souboru stiskněte Ctrl + O zachránit nano.
Spuštění příkazu po obnovení
Provedení příkazu po obnovení funguje podobně jakoběží něco před pozastavením. Jediným skutečným rozdílem je, že místo přidání příkazu za část skriptu „if“ byste provedli nejdůležitější část kódu za řádkem „elif“.
Chcete-li vytvořit skript po obnovení, nejprve přidejte jako první řádek shebang.
#!bin/bash
Na další řádek přidejte část skriptu „if“.
if [ "${1}" == "pre" ]; then # nothing goes here
S tímto kouskem kódu vloženým do bash skriptu se přesuňte dolů a vložte část „else if“.
elif [ "${1}" == "post" ]; then sh /path/to/script/to/run.sh fi
Opět je v pořádku psát cokoli pod řádek „elif“. Dokud se jedná o normální příkazovou operaci, spustí se systémd a bash.
Spouštění příkazů při spuštění a obnovení
Pokud chcete spustit dva opačné příkazy; jedenpřed pozastavením, a jeden při pokračování, je to možné. Znamená to pouze přizpůsobení skriptu a přidání řádků pod řádek „if“ a „elseif“.
Jako obvykle začněte tím, že vložíte shebang do skriptu pro tlumočníka.
#!/bin/bash
Dále vložte část if kódu.
if [ "${1}" == "pre" ]; then # replace with command
V případě, že nahraďte „# nahradit příkazem“ jakýmkoli příkazem, který chcete spustit těsně před spuštěním systému. Poté přejděte do sekce „elif“ a proveďte totéž.
elif [ "${1}" == "post" ]; then # replace with command fi
Uložte soubor pomocí Ctrl + O,
Aktualizace oprávnění a používání skriptu
Všechny potřebné příkazy jsou uvnitř souboru skriptu, ale před spuštěním je třeba aktualizovat oprávnění. Otevřete terminál a získejte root pomocí: su nebo sudo -s. Pak proveďte:
chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh
Od nynějška, kdykoli pozastavíte nebo obnovíte, by se měly ve skriptu spustit vlastní příkazy.
Poznámka: Máte otázky týkající se spánku systému? Zkontrolujte příručku pomocí man systemd-suspend.service.
Komentáře