Kako samodejno zagnati ukaze in skripte Linuxa pri ponovnem zagonu sistema

How Run Linux Commands



Samodejni zagon aplikacij in skriptov ob zagonu je lahko koristen za avtomatizacijo običajnih zagonskih opravil in dogodkov. Ta članek bo razložil nekaj metod, ki jih lahko uporabite za zagon aplikacij in skriptov pri novem ponovnem zagonu ali novi prijavi.

Zagon aplikacij

Ubuntu in druge distribucije, ki temeljijo na GNOME, imajo aplikacijo, ki se preprosto imenuje zagonske aplikacije. Uporablja se lahko za upravljanje aplikacij in skriptov, ki se izvajajo pri ponovnem zagonu ali prijavi sistema.







Zaženite aplikacijo Startup Applications iz zaganjalnika aplikacij in kliknite gumb Dodaj, da dodate nov vnos.





Izpolnite polja Ime in Ukaz glede na vaše potrebe in kliknite gumb Dodaj, da dokončate ustvarjanje novega vnosa. Vnos, ustvarjen na spodnjem posnetku zaslona, ​​bo ob vsakem ponovnem zagonu / prijavi poslal opomnik Make a Backup kot sistemsko obvestilo. Lahko ga zamenjate z lastnim ukazom ali s celotno potjo vašega bash skripta. Uporabite lahko tudi kateri koli obstoječi sistemski ukaz ali izvedljive datoteke, ki se običajno nahajajo v različnih mapah po celotnem datotečnem sistemu.





Kot je navedeno zgoraj, je ob vsakem ponovnem zagonu prikazan rezervni opomnik.



Systemd

Systemd je demon in upravitelj storitev, ki vsebuje različne pripomočke za upravljanje sistemskih procesov in komponent OS. V poenostavljeni obliki se običajno uporablja za zagon in konec storitev v novem zagonskem ciklu.

Systemd lahko uporabite za samodejni zagon aplikacije ali zagon skripta pri novem zagonu. Če želite ustvariti isto obvestilo o opomniku za varnostno kopiranje, opisano zgoraj, morate najprej ustvariti zahtevane mape in datoteko z izvajanjem spodnjih ukazov:

$mkdir -str~/.config/sistem/uporabnik
$nano~/.config/sistem/uporabnik/backup_reminder.service

Nano zamenjajte z ukazom svojega najljubšega urejevalnika besedil. Zamenjajte backup_reminder s katerim koli drugim imenom.

Spodnjo kodo prilepite v datoteko backup_reminder.service, ustvarjeno z zgornjim ukazom.

[Enota]
Opis = Ob vsakem ponovnem zagonu pošlje opomnik za varnostno kopiranje
PartOf = grafična seja.cilj

[Storitev]
ExecStart = bash -c 'sleep 10; notify-send 'Naredi varnostno kopijo' '
Vrsta = onehot

[Namesti]
WantedBy = grafična seja.cilj

Zgornja koda je precej preprosta. Pošlje obvestilo Make a Backup 10 sekund po nalaganju grafične seje (enkrat pri vsakem ponovnem zagonu ali prijavi).

Zaženite spodnje ukaze, da omogočite storitev, tako da se lahko samodejno zažene ob vsakem ponovnem zagonu.

$chmod 644~/.config/sistem/uporabnik/backup_reminder.service
$ systemctl-uporabnik omogočibackup_reminder.service
$ systemctl-uporabnikdaemon-reload
$ ponovni zagon

To je le preprost primer izvajanja osnovnega ukaza pri zagonu z uporabo systemd. Ustvarite lahko tudi napredne storitve z več pogoji in več ukazi. Za več informacij si oglejte mand stran systemd tako, da zaženete spodnji ukaz:

$človeksistem

Upoštevajte, da ta primer pojasnjuje ustvarjanje nove storitve, ki ne zahteva korenskega dostopa in je primerna za samodejni zagon aplikacij, ki ne zahtevajo dovoljenj root. Če želite samodejno zagnati skripte, ki zahtevajo korenski dostop, morate namesto ~/.config/systemd/user mape ustvariti novo storitev systemd v imeniku/etc/systemd/system in v zgornjih ukazih izpustiti stikalo -user.

Cron Job

Cron je orodje, ki lahko redno izvaja načrtovana opravila v skladu s pogoji, ki jih določi uporabnik. Ta razporejena opravila so ustvarjena v Crontabu v vnaprej določeni obliki. Preprosto povedano, Crontab pove Cronu, katera opravila naj se ob določenem času izvajajo.

Tako kot systemd se lahko opravila crontab uporabijo za zagon aplikacij in samodejni zagon skriptov ob zagonu. Če želite dodati novo opravilo cron, zaženite spodnji ukaz:

$crontab-In

Na konec besedilne datoteke dodajte naslednje vrstice (samodejno zažene terminal GNOME ob vsakem ponovnem zagonu):

LUK =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Uporabite lahko lasten ukaz ali vnesete celotno pot do skripta lupine.

Upoštevajte, da za razliko od systemd, cron ne more zaznati, ali je bila grafična seja naložena ali ne. Določiti morate predvideno čakalno dobo do nalaganja strežnika X in identifikator zaslona. O svojem prikaznem ID -ju lahko ugotovite tako, da zaženete spodnji ukaz:

$vrgel ven $ DISPLAY

Zakasnitev pred izvedbo ukaza ali skripta je odvisna od konfiguracije vašega sistema in časa zagona.

Rc.lokalno

Drug način za zagon skriptov in ukazov ob zagonu je uporaba datoteke rc.local. Upoštevajte, da pri testiranju nisem mogel odložiti izvajanja skripta, dokler grafična seja ni bila objavljena. Če dodate kakršno koli zakasnitev spanja, pride do zamude pri prikazovanju samega prijavnega zaslona. Zaradi tega nisem imel uspeha pri zagonu grafičnih aplikacij z datoteko rc.local. Urejanje rc.local zahteva tudi korenski dostop, za razliko od vseh drugih zgoraj navedenih primerov.

Če želite dodati ukaze / skripte v datoteko rc.local, zaženite spodnji ukaz (ustvari novo datoteko rc.local, če ne obstaja):

$sudo nano /itd/rc.local

Dodajte ukaze med #! /bin/bash in zapustite 0 vrstic, kot je prikazano spodaj:

#! /bin/bash
pot/do/my_script.sh
izhod 0

Datoteko rc.local izvedite tako, da zaženete spodnji ukaz:

$sudo chmod+ x/itd/rc.local

Znova zaženite, da bo zagonski skript začel veljati.

Zaključek

To je nekaj načinov, s katerimi lahko samodejno zaženete skripte in aplikacije ob zagonu. Če želite zagnati skripte, ki ne potrebujejo korenskega dostopa, priporočam uporabo aplikacije GUI Startup Applications. Če želite izvajati aplikacije in skripte s korenskim dostopom, vam predlagam, da ustvarite storitev systemd na ravni sistema.

O avtorju

Nitesh Kumar

Sem samostojni razvijalec programske opreme in avtor vsebin, ki obožuje Linux, odprtokodno programsko opremo in skupnost brezplačne programske opreme.

Ogled vseh objav