Ako automaticky spúšťať príkazy a skripty systému Linux pri reštarte systému

How Run Linux Commands



Automatické spúšťanie aplikácií a skriptov pri štarte môže byť užitočné na automatizáciu bežných úloh a udalostí pri zavádzaní. Tento článok vysvetlí niekoľko metód, ktoré je možné použiť na spustenie aplikácií a skriptov pri novom reštarte alebo novom prihlásení.

Spustenie aplikácií

Ubuntu a ďalšie distribúcie založené na GNOME sa dodávajú s aplikáciou jednoducho nazývanou Startup Applications. Môže byť použitý na správu aplikácií a skriptov, ktoré bežia na novom reštarte systému alebo prihlásení.







Spustite aplikáciu Startup Applications zo spúšťača aplikácií a kliknutím na tlačidlo Pridať pridajte nový záznam.





Vyplňte polia Meno a Príkaz podľa svojich potrieb a kliknutím na tlačidlo Pridať dokončite vytváranie nového záznamu. Položka vytvorená na nižšie uvedenej snímke obrazovky pošle pripomenutie Vytvoriť zálohu ako systémové upozornenie pri každom reštarte / prihlásení. Môžete ho nahradiť vlastným príkazom alebo úplnou cestou skriptu bash. Môžete tiež použiť akékoľvek existujúce systémové príkazy alebo spustiteľné súbory, ktoré sa zvyčajne nachádzajú v rôznych priečinkoch bin v súborovom systéme.





Ako je uvedené vyššie, pri každom reštarte sa zobrazí záložná pripomienka.



Systemd

Systemd je správca démonov a služieb, ktorý obsahuje rôzne nástroje na správu systémových procesov a komponentov operačného systému. V zjednodušenej forme sa zvyčajne používa na spustenie a ukončenie služieb v novom zavádzacom cykle.

Systemd možno použiť na automatické spustenie aplikácie alebo spustenie skriptu pri novom štarte. Ak chcete vytvoriť rovnaké upozornenie na zálohovanie, ako je vysvetlené vyššie, musíte najskôr vytvoriť požadované priečinky a súbor spustením nižšie uvedených príkazov:

$mkdir -p~/.konfig/systemd/používateľ
$nano~/.konfig/systemd/používateľ/služba backup_reminder.service

Nahraďte nano príkazom vášho obľúbeného textového editora. Nahradiť backup_reminder iným menom, ktoré uprednostňujete.

Vložte nižšie uvedený kód do súboru backup_reminder.service vytvoreného pomocou príkazu vyššie.

[Jednotka]
Popis = Pri každom reštarte pošle záložnú pripomienku
PartOf = graphical-session.target

[Služba]
ExecStart = bash -c 'spánok 10; oznámiť-odoslať 'Vytvoriť zálohu' '
Zadajte = oneshot

[Inštalácia]
WantedBy = graphical-session.target

Vyššie uvedený kód je veľmi jednoduchý. Odešle upozornenie Make a Backup 10 sekúnd po načítaní grafickej relácie (raz po reštarte alebo prihlásení).

Spustením nižšie uvedených príkazov aktivujte službu, aby sa mohla automaticky spustiť pri každom reštarte.

$chmod 644~/.konfig/systemd/používateľ/služba backup_reminder.service
$ systemctl-užívateľ povoliťslužba backup_reminder.service
$ systemctl-užívateľznova načítať démona
$ reštart

Toto je len jednoduchý príklad spustenia základného príkazu pri zavádzaní pomocou programu systemd. Môžete tiež vytvárať rozšírené služby s viacerými podmienkami a viacerými príkazmi. Ďalšie informácie nájdete na manuálovej stránke systemd spustením príkazu nižšie:

$mužsystemd

Všimnite si toho, že tento príklad vysvetľuje vytvorenie novej služby, ktorá nevyžaduje prístup root a je vhodná pre automatické spúšťanie aplikácií, ktoré nevyžadujú oprávnenia root. Ak chcete automaticky spúšťať skripty vyžadujúce prístup root, musíte namiesto priečinka ~/.config/systemd/user vytvoriť novú službu systemd v adresári/etc/systemd/system a vo vyššie uvedených príkazoch vynechať prepínač –user.

Cron Job

Cron je nástroj, ktorý môže pravidelne vykonávať naplánované úlohy podľa podmienok určených používateľom. Tieto naplánované úlohy sú vytvárané v Crontab vo vopred definovanom formáte. Jednoducho povedané, Crontab hovorí Cronovi, ktoré úlohy sa majú spustiť v akom čase.

Rovnako ako systemd, aj úlohy crontab možno použiť na spúšťanie aplikácií a automatické spúšťanie skriptov pri zavádzaní. Ak chcete pridať novú úlohu cron, spustite príkaz nižšie:

$crontab-A

Na koniec textového súboru pridajte nasledujúce riadky (automaticky spustí terminál GNOME pri každom reštarte):

SHELL =/bin/bash
@reštartujte počítač 30 && DISPLAY =: 0 terminál gnome

Môžete použiť svoj vlastný príkaz alebo zadať úplnú cestu k skriptu shell.

Všimnite si toho, že na rozdiel od systemd, cron nemôže zistiť, či bola načítaná grafická relácia alebo nie. Musíte zadať odhadovanú čakaciu dobu, kým sa server X nenačíta, a identifikátor zobrazenia. O svojom ID displeja môžete vedieť spustením nasledujúceho príkazu:

$zahodil $ DISPLEJ

Oneskorenie pred vykonaním príkazu alebo skriptu závisí od konfigurácie systému a času spustenia.

Rc.local

Ďalšou metódou na spustenie skriptov a príkazov pri spustení je použitie súboru rc.local. Všimnite si toho, že pri mojom testovaní som nebol schopný odložiť spustenie skriptu, kým nebude grafická relácia aktívna. Pridanie akéhokoľvek oneskorenia spánku povedie k oneskoreniu zobrazenia samotnej prihlasovacej obrazovky. Z tohto dôvodu som pri spustení grafických aplikácií pri spustení pomocou súboru rc.local neuspel. Úprava rc.local tiež vyžaduje prístup root, na rozdiel od všetkých ostatných príkladov vysvetlených vyššie.

Ak chcete do súboru rc.local pridať príkazy / skripty, spustite príkaz nižšie (vytvorí nový súbor rc.local, ak neexistuje):

$sudo nano /atď/rc.local

Pridajte svoje príkazy medzi #! /bin/bash a ukončite 0 riadkov, ako je uvedené nižšie:

#! /bin/bash
cesta/k/my_script.sh
výjazd 0

Vykonajte spustením nasledujúceho príkazu spustiteľný súbor rc.local:

$sudo chmod+ x/atď/rc.local

Stačí reštartovať, aby sa spustený skript prejavil.

Záver

Toto je niekoľko metód, ktoré je možné použiť na automatické spustenie skriptov a aplikácií pri spustení. Ak hľadáte spúšťanie skriptov, ktoré nevyžadujú prístup root, odporučil by som použiť aplikáciu GUI Startup Applications. Ak chcete spúšťať aplikácie a skripty s prístupom root, navrhujem, aby ste si vytvorili službu systemd na systémovej úrovni.

O autorovi

Nitesh Kumar

Som vývojár softvéru a autor obsahu na voľnej nohe, ktorý miluje Linux, softvér s otvoreným zdrojovým kódom a komunitu slobodného softvéru.

Zobraziť všetky príspevky