Linux komandas

Kā automātiski palaist Linux komandas un skriptus sistēmas reboot

Kā automātiski palaist Linux komandas un skriptus sistēmas reboot
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 paskaidrotas dažas metodes, kuras var izmantot, lai palaistu lietotnes un skriptus, izmantojot jaunu atsāknēšanu vai jaunu pieteikšanos.

Startēšanas programmas

Ubuntu un citiem GNOME balstītiem izplatījumiem ir pievienota lietojumprogramma, ko vienkārši sauc par “Startup Applications”. To var izmantot, lai pārvaldītu lietotnes un skriptus, kas darbojas ar jaunu sistēmas atsāknēšanu vai pieteikšanos.

Palaidiet programmu Startup Applications no lietojumprogrammu palaidēja un noklikšķiniet uz pogas Pievienot, lai pievienotu jaunu ierakstu.

Aizpildiet laukus “Nosaukums” un “Komanda” atbilstoši savām vajadzībām un pēc tam noklikšķiniet uz pogas “Pievienot”, lai pabeigtu jauna ieraksta izveidi. Zemāk redzamajā ekrānuzņēmumā izveidotais ieraksts nosūtīs atgādinājumu “Veikt dublējumu” kā sistēmas paziņojumu par katru atsāknēšanu / pieteikšanos. To var aizstāt ar savu komandu vai ar pilnu 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 dažādās “bin” mapēs.

Kā minēts iepriekš, katrā atsāknēšanas reizē tiek parādīts rezerves atgādinājums.

Systemd

Systemd ir dēmonu un pakalpojumu pārvaldnieks, kas satur dažādas utilītas, lai pārvaldītu sistēmas procesus un OS komponentus. Vienkāršotā formā to parasti izmanto, lai sāktu un beigtu pakalpojumus jaunā sāknēšanas ciklā.

Systemd var izmantot, lai automātiski palaistu lietotni vai palaistu skriptu jaunai sāknēšanai. Lai izveidotu to pašu iepriekš aprakstīto dublējuma atgādinājuma paziņojumu, vispirms jāizveido nepieciešamās mapes un fails, izpildot tālāk norādītās komandas:

$ mkdir -p ~ /.config / systemd / user
$ nano ~ /.config / systemd / user / backup_reminder.apkalpošana

Aizstājiet “nano” ar iecienītā teksta redaktora komandu. Aizstājiet “backup_reminder” ar jebkuru citu vēlamo vārdu.

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

[Vienība]
Description = Nosūta rezerves atgādinājumu par katru atsāknēšanu
PartOf = grafiskā sesija.mērķis
[Apkalpošana]
ExecStart = bash -c 'miegs 10; paziņot-nosūtīt "Izveidot dublējumu"
Tips = onehot
[Uzstādīt]
WantedBy = grafiskā sesija.mērķis

Iepriekš redzamais kods ir diezgan vienkāršs. Tas 10 sekundes pēc grafiskās sesijas ielādes nosūta paziņojumu “Izveidot dublējumu” (reizi ikreiz atsāknējot vai piesakoties).

Palaidiet tālāk norādītās komandas, lai iespējotu pakalpojumu, lai tas varētu automātiski darboties katrā atsāknēšanas reizē.

$ chmod 644 ~ /.config / systemd / user / backup_reminder.apkalpošana
$ systemctl --user iespējo backup_reminder.apkalpošana
$ systemctl --user daemon-reload
$ atsāknēšana

Šis ir tikai vienkāršs pamatkomandas palaišanas sāknēšanas piemērs, izmantojot systemd. Varat arī izveidot uzlabotus pakalpojumus ar vairākiem nosacījumiem un vairākām komandām. Lai iegūtu papildinformāciju, skatiet sistēmas man rokasgrāmatu, izpildot zemāk esošo komandu:

$ man systemd

Ņemiet vērā, ka šajā piemērā ir izskaidrots jauna pakalpojuma izveide, kuram nav nepieciešama piekļuve root un kas ir piemērots automātiskās palaišanas lietotnēm, kurām nav nepieciešamas root atļaujas. Ja vēlaties automātiski palaist skriptus, kuriem nepieciešama root piekļuve, direktorijā “/ etc / systemd / system” jāizveido jauns systemd pakalpojums, nevis “~ /.config / systemd / user ”mapi un iepriekšminētajās komandās izlaidiet slēdzi“ -user ”.

Cron Job

Cron ir rīks, kas var periodiski izpildīt ieplānotos uzdevumus saskaņā ar lietotāja norādītajiem nosacījumiem. Šīs ieplānotās darba vietas tiek izveidotas Crontab iepriekš noteiktā formātā. Vienkārši sakot, Crontab paziņo Kronam, kuras darba vietas noteiktā brīdī vadīt.

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 zemāk esošo komandu:

$ crontab -e

Pievienojiet šādas rindiņas teksta faila beigās (automātiski palaiž GNOME termināli katrā atsāknēšanas reizē):

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

Varat izmantot savu komandu vai piegādā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 vai nē. Jums jānorāda aptuvenais gaidīšanas periods, līdz tiek ielādēts X serveris, un displeja identifikators. Par displeja ID varat uzzināt, izpildot zemāk esošo komandu:

$ echo $ 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.vietējais

Vēl viena metode, kā palaist skriptus un komandas startēšanas laikā, ir “rc.vietējais ”fails. Ņemiet vērā, ka testēšanas laikā es nevarēju atlikt skripta izpildi, kamēr grafiskā sesija nebija pieejama. Miega aizkaves pievienošana noved pie paša pieteikšanās ekrāna parādīšanas aizkavēšanās. Tāpēc man nebija panākumu palaist grafiskās lietotnes startēšanas laikā, izmantojot rc.vietējais fails. Rediģē rc.Atšķirībā no visiem citiem iepriekš paskaidrotajiem piemēriem, vietnei ir nepieciešama arī piekļuve root.

Lai pievienotu komandas / skriptus rc.vietējais fails, palaidiet zemāk esošo komandu (izveido jaunu.vietējais fails, ja tāda nav):

$ sudo nano / etc / rc.vietējais

Pievienojiet komandas starp “#! / bin / bash ”un“ exit 0 ”rindas, kā parādīts zemāk:

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

Padarīt rc.izpildāms vietējais fails, izpildot zemāk esošo komandu:

$ sudo chmod + x / etc / rc.vietējais

Vienkārši pārstartējiet, lai startēšanas skripts stātos spēkā.

Secinājums

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

Par autoru

Nitesh Kumar

Esmu ārštata programmatūras izstrādātājs un satura autors, kurš mīl Linux, atvērtā pirmkoda programmatūru un brīvās programmatūras kopienu.

Skatīt visas ziņas
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...