Kako automatski pokrenuti Linux naredbe i skripte pri ponovnom pokretanju sustava

How Run Linux Commands



Automatsko pokretanje aplikacija i skripti pri pokretanju može biti korisno za automatiziranje uobičajenih zadataka i događaja pokretanja. Ovaj će članak objasniti nekoliko metoda koje se mogu koristiti za pokretanje aplikacija i skripti pri ponovnom pokretanju ili novoj prijavi.

Startup aplikacije

Ubuntu i druge distribucije temeljene na GNOME -u dolaze s aplikacijom koja se jednostavno naziva Startup Applications. Može se koristiti za upravljanje aplikacijama i skriptama koje se izvode pri ponovnom pokretanju sustava ili prijavi.







Pokrenite aplikaciju Startup Applications iz pokretača aplikacija i kliknite gumb Dodaj da biste dodali novi unos.





Popunite polja Ime i Naredba prema vašim potrebama, a zatim kliknite gumb Dodaj da biste dovršili stvaranje novog unosa. Unos kreiran na donjoj snimci zaslona poslat će podsjetnik Napravi sigurnosnu kopiju kao obavijest sustava pri svakom ponovnom pokretanju / prijavi. Možete ga zamijeniti vlastitom naredbom ili punim putem vaše bash skripte. Također možete koristiti bilo koju postojeću naredbu sustava ili izvršne datoteke koje se obično nalaze u različitim mapama smeća u datotečnom sustavu.





Kao što je gore navedeno, pri svakom ponovnom pokretanju prikazuje se sigurnosni podsjetnik.



Systemd

Systemd je demon i upravitelj usluga koji sadrži razne pomoćne programe za upravljanje procesima sustava i komponentama OS -a. U svom pojednostavljenom obliku, obično se koristi za pokretanje i završavanje usluga u novom ciklusu pokretanja.

Systemd se može koristiti za automatsko pokretanje aplikacije ili pokretanje skripte pri novom pokretanju. Da biste stvorili istu gore spomenutu obavijest o podsjetniku za sigurnosnu kopiju, prvo morate stvoriti potrebne mape i datoteku pokretanjem naredbi u nastavku:

$mkdir -str~/.konfig/sustav/korisnik
$nano~/.konfig/sustav/korisnik/backup_reminder.service

Zamijenite nano naredbom svog omiljenog uređivača teksta. Zamijenite backup_reminder sa bilo kojim drugim imenom koje želite.

Zalijepite donji kôd u datoteku backup_reminder.service stvorenu pomoću gornje naredbe.

[Jedinica]
Opis = Šalje sigurnosni podsjetnik pri svakom ponovnom pokretanju
PartOf = grafička sesija.cilj

[Servis]
ExecStart = bash -c 'sleep 10; notify-send 'Napravi sigurnosnu kopiju' '
Vrsta = onehot

[Instalirati]
WantedBy = grafička sesija.cilj

Gornji kôd je prilično jasan. On šalje obavijest Napravi sigurnosnu kopiju 10 sekundi nakon učitavanja grafičke sesije (jednom pri svakom ponovnom pokretanju ili prijavi).

Pokrenite naredbe u nastavku kako biste omogućili uslugu tako da se može automatski pokrenuti pri svakom ponovnom pokretanju.

$chmod 644~/.konfig/sustav/korisnik/backup_reminder.service
$ systemctl--korisnik omogućitibackup_reminder.service
$ systemctl--korisnikdaemon-reload
$ ponovno podizanje sustava

Ovo je samo jednostavan primjer izvođenja osnovne naredbe pri pokretanju pomoću systemd. Također možete stvoriti napredne usluge s više uvjeta i više naredbi. Za više informacija pogledajte sistemsku man stranicu pokretanjem naredbe ispod:

$čovjeksustav

Imajte na umu da ovaj primjer objašnjava stvaranje nove usluge koja ne zahtijeva root pristup i prikladna je za automatsko pokretanje aplikacija koje ne zahtijevaju root dopuštenja. Ako želite automatski pokrenuti skripte koje zahtijevaju root pristup, morate stvoriti novu uslugu systemd u/etc/systemd/system direktoriju umjesto ~/.config/systemd/user folder i izostaviti -user prekidač u gore navedenim naredbama.

Cron Job

Cron je alat koji može povremeno pokretati zakazane zadatke prema uvjetima koje je odredio korisnik. Ovi zakazani poslovi stvaraju se u Crontabu u unaprijed definiranom formatu. Jednostavno rečeno, Crontab govori Cronu koji će poslovi biti pokrenuti u kojem trenutku.

Kao i systemd, poslovi crontaba mogu se koristiti za pokretanje aplikacija i automatsko pokretanje skripti pri pokretanju. Da biste dodali novi cron posao, pokrenite donju naredbu:

$crontab-I

Dodajte sljedeće retke na kraj tekstualne datoteke (automatski pokreće terminal GNOME pri svakom ponovnom pokretanju):

LUŠKA =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Možete koristiti vlastitu naredbu ili dostaviti puni put do skripte ljuske.

Imajte na umu da za razliku od systemd, cron ne može otkriti je li grafička sesija učitana ili nije. Morate navesti procijenjeno razdoblje čekanja dok se X poslužitelj ne učita i identifikator zaslona. Za svoj ID prikaza možete saznati pokretanjem naredbe ispod:

$izbaciti $ DISPLAY

Odgoda prije izvođenja naredbe ili skripte ovisi o konfiguraciji vašeg sustava i vremenu pokretanja.

Rc.lokalno

Druga metoda za pokretanje skripti i naredbi pri pokretanju je upotreba datoteke rc.local. Imajte na umu da u svom testiranju nisam mogao odgoditi izvršavanje skripte sve dok grafička sesija nije bila aktivna. Dodavanje odgode spavanja dovodi do kašnjenja u prikazivanju samog zaslona za prijavu. Zbog toga nisam imao uspjeha u pokretanju grafičkih aplikacija pri pokretanju pomoću datoteke rc.local. Uređivanje rc.local također zahtijeva root pristup, za razliku od svih drugih gore navedenih primjera.

Da biste dodali naredbe / skripte u datoteku rc.local, pokrenite donju naredbu (stvara novu datoteku rc.local ako ne postoji):

$sudo nano /itd/rc.lokalno

Dodajte svoje naredbe između #! /bin/bash i izađite iz 0 linija, kao što je prikazano u nastavku:

#! /bin/bash
put/do/my_script.sh
izlaz 0

Učinite datoteku rc.local izvršnom naredbom ispod:

$sudo chmod+ x/itd/rc.lokalno

Samo ponovno pokrenite sustav kako bi početna skripta stupila na snagu.

Zaključak

Ovo je nekoliko metoda koje se mogu koristiti za automatsko pokretanje skripti i aplikacija pri pokretanju. Ako želite pokrenuti skripte koje ne zahtijevaju root pristup, preporučio bih upotrebu GUI aplikacije Startup Applications. Ako želite pokretati aplikacije i skripte s root pristupom, predlažem vam da stvorite uslugu systemd na razini sustava.

O autoru

Nitesh Kumar

Ja sam slobodni programer softvera i pisac sadržaja koji voli Linux, softver otvorenog koda i zajednicu besplatnog softvera.

Pogledajte sve postove