Kā automātiski palaist Linux komandas un skriptus sistēmas atsāknēšanā

How Run Linux Commands



Lietotņu un skriptu automātiska palaišana startēšanas laikā var būt noderīga, lai automatizētu parastos sāknēšanas uzdevumus un notikumus. Šajā rakstā tiks izskaidrotas dažas metodes, kuras var izmantot lietotņu un skriptu palaišanai, veicot jaunu atsāknēšanu vai jaunu pieteikšanos.

Startēšanas lietojumprogrammas

Ubuntu un citiem GNOME izplatījumiem ir lietojumprogramma, ko vienkārši sauc par starta lietojumprogrammām. To var izmantot, lai pārvaldītu lietotnes un skriptus, kas darbojas, atsāknējot sistēmu vai piesakoties.







Palaidiet lietojumprogrammu Startēšanas lietojumprogrammas no lietojumprogrammu palaidēja un noklikšķiniet uz pogas Pievienot, lai pievienotu jaunu ierakstu.





Aizpildiet nosaukuma un komandu laukus atbilstoši savām vajadzībām un pēc tam noklikšķiniet uz pogas Pievienot, lai pabeigtu jauna ieraksta izveidi. Ieraksts, kas izveidots zemāk esošajā ekrānuzņēmumā, nosūtīs atgādinājumu Izveidot dublējumu kā sistēmas paziņojumu par katru atsāknēšanu / pieteikšanos. Jūs varat to aizstāt ar savu komandu vai ar pilnu sava bash skripta ceļu. Varat arī izmantot jebkuru esošo sistēmas komandu vai izpildāmos failus, kas parasti atrodas dažādās failu sistēmas mapēs.





Kā minēts iepriekš, katras pārstartēšanas laikā tiek parādīts atgādinājums par rezerves kopiju.



Sist

Systemd ir dēmons un pakalpojumu pārvaldnieks, kurā ir dažādas utilītas sistēmas procesu un OS komponentu pārvaldībai. Vienkāršotā formā to parasti izmanto, lai sāktu un pabeigtu pakalpojumus jaunā sāknēšanas ciklā.

Sistēmu Systemd var izmantot, lai automātiski palaistu lietotni vai palaistu skriptu jaunā sāknēšanas reizē. Lai izveidotu to pašu paziņojumu par rezerves atgādinājumu, kas iepriekš izskaidrots, vispirms jāizveido nepieciešamās mapes un fails, izpildot tālāk norādītās komandas.

$mkdir -lpp~/.config/sistēma/lietotājs
$nano~/.config/sistēma/lietotājs/backup_reminder.service

Nomainiet nano ar iecienītākā teksta redaktora komandu. Aizstājiet backup_reminder ar jebkuru citu vēlamo nosaukumu.

Ielīmējiet zemāk esošo kodu failā backup_reminder.service, kas izveidots, izmantojot iepriekš minēto komandu.

[Vienība]
Apraksts = nosūta rezerves atgādinājumu par katru atsāknēšanu
PartOf = graphical-session.target

[Apkalpošana]
ExecStart = bash -c 'miega 10; paziņot-sūtīt 'Izveidot dublējumu'
Ierakstiet = viens šāviens

[Uzstādīt]
WantedBy = graphical-session.target

Iepriekš minētais kods ir diezgan vienkāršs. Tas nosūta paziņojumu par dublējuma izveidi 10 sekundes pēc grafiskās sesijas ielādes (vienu reizi pēc atsāknēšanas vai pieteikšanās).

Palaidiet tālāk norādītās komandas, lai iespējotu pakalpojumu, lai tas varētu automātiski palaist katru restartēšanas reizi.

$chmod 644~/.config/sistēma/lietotājs/backup_reminder.service
$ systemctl-lietotājs iespējotbackup_reminder.service
$ systemctl-lietotājsdēmonu pārlādēšana
$ atsāknēšana

Šis ir vienkāršs piemērs pamata komandas palaišanai sāknēšanā, izmantojot systemd. Varat arī izveidot papildu pakalpojumus ar vairākiem nosacījumiem un vairākām komandām. Lai iegūtu papildinformāciju, skatiet sistēmas manuālo lapu, izpildot zemāk esošo komandu:

$cilvēkssistēma

Ņemiet vērā, ka šajā piemērā ir paskaidrots, kā izveidot jaunu pakalpojumu, kuram nav nepieciešama saknes piekļuve un kas ir piemērots automātiski startējošām lietotnēm, kurām nav nepieciešamas saknes atļaujas. Ja vēlaties automātiski palaist skriptus, kuriem nepieciešama root piekļuve, mapē ~/.config/systemd/user ir jāizveido jauns systemd pakalpojums direktorijā/etc/systemd/system un jāizlaiž lietotāja slēdzis iepriekšminētajās komandās.

Cron Job

Cron ir rīks, kas var periodiski izpildīt plānotos uzdevumus saskaņā ar lietotāja norādītajiem nosacījumiem. Šie plānotie darbi tiek izveidoti programmā Crontab iepriekš noteiktā formātā. Vienkārši izsakoties, Crontab norāda Cron, kuri darbi kādā brīdī jāpilda.

Tāpat kā systemd, crontab darbus var izmantot, lai palaistu lietotnes un automātiski palaistu skriptus sāknēšanas laikā. Lai pievienotu jaunu cron darbu, palaidiet tālāk norādīto komandu.

$crontab-Un

Teksta faila beigās pievienojiet šādas rindiņas (automātiski palaiž GNOME termināli katrā pārstartēšanas reizē):

SHELL =/bin/bash
@pārstartēt miegu 30 && DISPLAY =: 0 gnome-terminal

Jūs varat izmantot savu komandu vai nodrošināt pilnu ceļu uz čaulas skriptu.

Ņemiet vērā, ka atšķirībā no systemd, cron nevar noteikt, vai grafiskā sesija ir ielādēta. Jums ir jānorāda paredzamais gaidīšanas periods, līdz X serveris tiek ielādēts, un displeja identifikators. Par savu redzamo ID varat uzzināt, izpildot tālāk norādīto komandu.

$izmest ārā $ DISPLAY

Kavēšanās pirms komandas vai skripta izpildes ir atkarīga no jūsu sistēmas konfigurācijas un sāknēšanas laika.

Rc.local

Vēl viena metode skriptu un komandu palaišanai startēšanas laikā ir rc.local faila izmantošana. Ņemiet vērā, ka manā testēšanā es nevarēju atlikt skripta izpildi, līdz grafiskā sesija bija tiešraidē. Jebkura miega aizkaves pievienošana noved pie paša pieteikšanās ekrāna parādīšanas aizkavēšanās. Šī iemesla dēļ man neizdevās palaist grafiskās lietotnes startēšanas laikā, izmantojot rc.local failu. Lai rediģētu rc.local, ir nepieciešama arī root piekļuve, atšķirībā no visiem citiem iepriekš aprakstītajiem piemēriem.

Lai rc.local failam pievienotu komandas / skriptus, palaidiet tālāk norādīto komandu (izveido jaunu rc.local failu, ja tāda nav):

$sudo nano /utt/rc.local

Pievienojiet savas komandas starp #! /bin/bash un izejiet no 0 rindām, kā parādīts zemāk:

#! /bin/bash
ceļš/uz/my_script.sh
izeja 0

Padariet rc.local failu izpildāmu, palaižot zemāk esošo komandu:

$sudo chmod+ x/utt/rc.local

Vienkārši restartējiet, lai starta skripts stātos spēkā.

Secinājums

Šīs ir dažas metodes, kuras var izmantot, lai startēšanas laikā automātiski palaistu skriptus un lietotnes. Ja vēlaties palaist skriptus, kuriem nav nepieciešama root piekļuve, es ieteiktu izmantot lietotni Startup Applications GUI. Ja vēlaties palaist lietotnes un skriptus ar saknes piekļuvi, es ieteiktu jums izveidot sistēmas līmeņa sistematizētu pakalpojumu.

Par autoru

Nitesh Kumar

Esmu ārštata programmatūras izstrādātājs un satura rakstnieks, kuram patīk Linux, atvērtā pirmkoda programmatūra un bezmaksas programmatūras kopiena.

Skatīt visas ziņas