„Linux“ komandos

Kaip automatiškai paleisti „Linux“ komandas ir scenarijus sistemoje perkraunant

Kaip automatiškai paleisti „Linux“ komandas ir scenarijus sistemoje perkraunant
Automatinis programų ir scenarijų paleidimas paleidus gali būti naudingas automatizuojant įprastas įkrovos užduotis ir įvykius. Šiame straipsnyje bus paaiškinti keli metodai, kuriuos galima naudoti paleidžiant programas ir scenarijus iš naujo perkraunant arba prisijungus.

Paleisties programos

„Ubuntu“ ir kiti GNOME pagrįsti paskirstymai yra su programa, tiesiog vadinama „Startup Applications“. Jis gali būti naudojamas tvarkant programas ir scenarijus, kurie veikia naudojant naują sistemos perkrovimą arba prisijungimą.

Paleiskite „Startup Applications“ programą iš programų paleidimo priemonės ir spustelėkite mygtuką „Pridėti“, kad pridėtumėte naują įrašą.

Užpildykite laukus „Vardas“ ir „Komanda“ pagal savo poreikius ir spustelėkite mygtuką „Pridėti“, kad baigtumėte kurti naują įrašą. Žemiau pateiktoje ekrano kopijoje sukurtas įrašas išsiųs „Padarykite atsarginę kopiją“ priminimą kaip sistemos pranešimą apie kiekvieną perkrovimą / prisijungimą. Galite jį pakeisti savo komanda arba visu bash scenarijaus keliu. Taip pat galite naudoti bet kokią esamą sistemos komandą ar vykdomuosius failus, paprastai esančius įvairiuose failų sistemos „bin“ aplankuose.

Kaip minėta pirmiau, atsarginis priminimas rodomas kiekviename perkraunant.

Systemd

„Systemd“ yra „daemon“ ir paslaugų tvarkyklė, kurioje yra įvairios komunalinės paslaugos, skirtos valdyti sistemos procesus ir OS komponentus. Paprastos formos jis paprastai naudojamas pradedant ir baigiant paslaugas naujame įkrovos cikle.

„Systemd“ gali būti naudojamas norint automatiškai paleisti programą arba paleisti scenarijų naujame įkrovoje. Norėdami sukurti tą patį aukščiau paaiškintą atsarginės kopijos priminimo pranešimą, pirmiausia turite sukurti reikiamus aplankus ir failą, vykdydami toliau nurodytas komandas:

$ mkdir -p ~ /.config / systemd / user
$ nano ~ /.config / systemd / user / backup_reminder.paslaugą

„Nano“ pakeiskite mėgstamiausio teksto redaktoriaus komanda. Pakeiskite „backup_reminder“ kitu norimu pavadinimu.

Įklijuokite žemiau esantį kodą į atsarginę_priminimą.paslaugos failas sukurtas naudojant aukščiau pateiktą komandą.

[Vienetas]
Description = Siunčia atsarginį priminimą kiekvienam perkraunant
PartOf = grafinė sesija.taikinys
[Paslauga]
ExecStart = bash -c 'miegas 10; pranešti-siųsti „Padaryti atsarginę kopiją“
Tipas = onehot
[Diegti]
WantedBy = grafinė sesija.taikinys

Aukščiau pateiktas kodas yra gana paprastas. Praėjus 10 sekundžių po grafinio seanso įkėlimo, jis siunčia pranešimą „Padaryti atsarginę kopiją“ (kartą perkrovimą ar prisijungimą).

Paleiskite toliau pateiktas komandas, kad įgalintumėte paslaugą, kad ji galėtų automatiškai paleisti kiekvieną kartą perkraunant.

$ chmod 644 ~ /.config / systemd / user / backup_reminder.paslaugą
$ systemctl --user įgalinti backup_reminder.paslaugą
$ systemctl --user daemon-reload
$ perkrauti

Tai tik paprastas pavyzdys, kaip paleisti pagrindinę komandą naudojant „systemd“. Taip pat galite sukurti pažangias paslaugas su keliomis sąlygomis ir keliomis komandomis. Norėdami gauti daugiau informacijos, apsilankykite „systemd“ žmogaus puslapyje vykdydami toliau nurodytą komandą:

$ man systemd

Atminkite, kad šiame pavyzdyje paaiškinta, kaip sukurti naują paslaugą, kuriai nereikia root prieigos ir kuri yra tinkama automatiškai paleistoms programoms, kurioms nereikia root teisių. Jei norite automatiškai paleisti scenarijus, kuriems reikalinga root prieiga, turite sukurti naują „systemd“ paslaugą kataloge „/ etc / systemd / system“, o ne „~ /.aplanką config / systemd / user “ir aukščiau paminėtose komandose praleiskite jungiklį„ -user “.

Kronas Jobas

„Cron“ yra įrankis, kuris gali periodiškai vykdyti suplanuotas užduotis pagal vartotojo nurodytas sąlygas. Šios suplanuotos darbo vietos sukuriamos iš anksto nustatytu formatu „Crontab“. Paprasčiau tariant, „Crontab“ nurodo Cronui, kuriuos darbus reikia atlikti bet kuriuo metu.

Kaip ir „systemd“, „crontab“ užduotys gali būti naudojamos paleisti programas ir automatiškai paleisti scenarijus įkrovos metu. Norėdami pridėti naują „cron“ užduotį, vykdykite toliau pateiktą komandą:

$ crontab -e

Teksto failo pabaigoje pridėkite šias eilutes (automatiškai paleidžiant GNOME terminalą kiekviename perkrovime):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminalas

Galite naudoti savo komandą arba pateikti visą kelią į apvalkalo scenarijų.

Atminkite, kad, kitaip nei „systemd“, „cron“ negali nustatyti, ar grafinė sesija buvo įkelta, ar ne. Turite nurodyti numatomą laukimo laikotarpį, kol įkraunamas X serveris, ir ekrano identifikatorių. Apie ekrano ID galite sužinoti vykdydami toliau pateiktą komandą:

$ echo $ DISPLAY

Vėlavimas prieš komandos ar scenarijaus vykdymą priklauso nuo jūsų sistemos konfigūracijos ir įkrovos laiko.

Rc.vietinis

Kitas būdas paleisti scenarijus ir komandas yra naudoti „rc.vietinis “failas. Atkreipkite dėmesį, kad bandydamas negalėjau atidėti scenarijaus vykdymo, kol grafinė sesija nebuvo paskelbta. Pridedant bet kokį miego uždelsimą, vėluojama rodyti patį prisijungimo ekraną. Dėl to man nesisekė paleisti grafinių programų paleidžiant naudojant rc.vietinis failas. Redaguojamas rc.„local“ taip pat reikalauja root prieigos, skirtingai nei visi kiti aukščiau paaiškinti pavyzdžiai.

Norėdami pridėti komandas / scenarijus prie rc.vietinį failą, paleiskite žemiau esančią komandą (sukuria naują.vietinis failas, jei jo nėra):

$ sudo nano / etc / rc.vietinis

Pridėkite komandas tarp „#! / bin / bash “ir„ exit 0 “eilutės, kaip parodyta žemiau:

#! / bin / bash
kelias / į / mano_skriptą.sh
išėjimas 0

Padarykite rc.vietinis failas, vykdomas vykdant žemiau esančią komandą:

$ sudo chmod + x / etc / rc.vietinis

Tiesiog paleiskite iš naujo, kad paleisties scenarijus įsigaliotų.

Išvada

Tai yra keli metodai, kuriuos galima naudoti automatiškai paleidžiant scenarijus ir programas. Jei norite paleisti scenarijus, kuriems nereikia root prieigos, rekomenduočiau naudoti „Startup Applications“ GUI programą. Jei norite paleisti programas ir scenarijus su prieiga prie šaknies, siūlyčiau sukurti sistemos lygio „systemd“ paslaugą.

Apie autorių

Niteshas Kumaras

Esu laisvai samdomas programinės įrangos kūrėjas ir turinio rašytojas, mėgstantis „Linux“, atvirojo kodo programinę įrangą ir laisvos programinės įrangos bendruomenę.

Peržiūrėti visus pranešimus
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...