Kako pokrenuti Linux program pri pokretanju sa systemd-om
Fatmawati Achmad Zaenuri/Shutterstock
Trebate pokrenuti Linux program pri pokretanju? Systemd softver pruža način da to učinite na bilo kojem Linux distribucija sa systemd —što ih je većina ovih dana, uključujući Ubuntu. Provest ćemo vas kroz proces stvaranja integrirane usluge - a ona čak i razgovara s časopisom.
Ovaj vodič pokazuje kako postaviti uslugu sustava koja se pokreće kada pokrenete sustav. Za pokretanje grafičkog programa kada se prijavite, umjesto toga koristite upravitelja pokretanja vašeg desktopa .
Pokretanje programa pri pokretanju
Ponekad se softver koji instalirate na svoje računalo zakači u proces pokretanja Linuxa, tako da se program automatski pokreće svaki put kada se računalo pokrene. To isto ponašanje možete lako postići sa svojim vlastitim programima i skriptama, ili zapravo bilo kojim drugim programom koji se nalazi na vašem računalu.
Programi koji se pokreću pri pokretanju kontroliraju |_+_|, the sustav i servis menadžer. |_+_| je prvi proces koji se pokreće pri pokretanju. Uvijek je bilo ID procesa (PID) 1. Svaki drugi proces koji se izvodi na vašem računalu pokreće |_+_|, ili proces koji |_+_| već je počela.
Pozivaju se programi koji rade u pozadini demone ili usluge. D na kraju |_+_| označava daemon. U ovom članku ćemo izraditi primjer usluge. Da biste označili sve okvire, naša usluga mora biti:
- Integrirano s |_+_| putem datoteke servisne jedinice
- Pokrenut pri pokretanju
- Upravlja se pomoću |_+_|, kontrolno sučelje za |_+_|
- Može pisati u časopis
Izrada servisnog programa
Moramo imati program koji |_+_| će pokrenuti. Napravit ćemo jednostavnu skriptu, nazvanu htg.sh. Ovaj vodič koristi uređivač teksta Gedit, ali možete koristiti bilo koji uređivač teksta koji želite.
systemd
systemd
Oglas
The |_+_| otvorit će se uređivač. Kopirajte i zalijepite sljedeći tekst u uređivač.
systemd
Spremite promjene i zatvorite uređivač.
Scenarij ne radi puno, ali postoji nekoliko točaka koje vrijedi istaknuti.
- Dva |_+_| linije se vode kroz |_+_|, program koji uzima izlaz iz programa i šalje ga u dnevnik . Unosi u časopis imaju prioritet. Koristimo |_+_| (prioritetna) opcija koja označava da su naše poruke samo informativne (informativne). Nisu važne pogreške ili upozorenja.
- Postoji beskrajni |_+_| petlja.
- The |_+_| varijabla je postavljena na trenutni datum i vrijeme. To se oblikuje u poruku i šalje u časopis.
- Skripta tada spava 60 sekundi.
- Nakon 60 sekundi petlja se ponavlja. Dakle, ova skripta upisuje poruku s vremenskim žigom u dnevnik jednom u minuti.
Kopirat ćemo skriptu u |_+_| imenik.
systemd
I moramo ga učiniti izvršnim:
systemd
Stvaranje datoteke servisne jedinice
Svaki program koji pokreće |_+_| ima datoteku definicije, koja se zove datoteka servisne jedinice. Ovo ima određene atribute |_+_| može koristiti za lociranje i pokretanje programa, te za definiranje nekih njegovih ponašanja.
Moramo stvoriti jediničnu datoteku za našu novu uslugu, ali je razborito osigurati da nijedna od postojećih datoteka jedinica nema naziv koji želimo dati našoj novoj usluzi.
systemd
Možete se pomicati kroz popis datoteka jedinica, koji je poredan po abecedi, i provjeriti da naziv koji želite koristiti nije zauzet.
Oglas
Naša usluga će se zvati htg.service. Nijedna datoteka jedinice nema taj naziv, tako da možemo nastaviti i stvoriti našu jediničnu datoteku.
systemctl
The |_+_| otvorit će se uređivač. Kopirajte i zalijepite sljedeći tekst u uređivač:
systemd
Spremite promjene i zatvorite uređivač.
Unosi imaju ova značenja. Ovo su tipični unosi. Naša jednostavna usluga zapravo ne treba većinu njih, ali njihovo uključivanje nam omogućuje da ih objasnimo.
- Zelena točka znači da naša usluga radi bez problema.
- Naziv usluge je htg.service, a dugi opis je onaj koji smo dali u datoteci jedinice.
- Pokazano nam je koja je datoteka jedinice učitana /etc/systemd/system/htg.service.
- Usluga je aktivna, a navedeno nam je vrijeme kada je usluga pokrenuta.
- Njegov PID je 7762.
- Dva su zadatka povezana s uslugom.
- Ukupno 928 kibibajti memorije koristi ih služba.
- Kontrolna grupa uključuje skriptu htg.sh i |_+_| naredbu, koju je pokrenuo htg.sh. Većinu vremena, |_+_| zapovjedništvo će obavljati posao za ovu uslugu.
- › Kako pronaći svoj Spotify omotan 2021
- & rsaquo; Cyber ponedjeljak 2021.: Najbolje tehničke ponude
- › 5 web stranica koje svaki korisnik Linuxa treba označiti
- › Funkcije u odnosu na formule u Microsoft Excelu: u čemu je razlika?
- › Mapa računala je 40: Kako je Xerox Star stvorio radnu površinu
- & rsaquo; Cyber ponedjeljak 2021: najbolje ponude za Apple
Datoteka jedinice ne mora biti izvršna, ali dozvole za jediničnu datoteku trebaju ograničiti tko je može uređivati. Ne želite da zlonamjerni ili nestašni korisnik mijenja datoteku jedinice tako da ona izvršava potpuno drugačiji program.
Ova naredba će vlasniku dati dopuštenja za čitanje i pisanje te dopuštenja za čitanje grupi. Drugi neće imati nikakva dopuštenja.
systemd
Možemo imati |_+_| provjerite sintaksu naše datoteke jedinice, čak i ako usluga još nije pokrenuta. Sve pogreške će biti prijavljene. (Zapravo, dio .service nije obavezan za većinu naredbi.)
gedit
Oglas
Pogreške nisu istaknute, što znači da je naša jedinica datoteka sintaktički točna.
Pokretanje usluge
Kada dodate novu datoteku jedinice ili uredite postojeću, morate reći |_+_| za ponovno učitavanje definicija datoteke jedinice.
echo
Ako želite da se usluga pokrene pri pokretanju, morate omogućiti to:
systemd-cat
Omogućavanje usluge ne pokreće je, već samo postavlja da se pokrene u vrijeme pokretanja. Za pokretanje usluge sada , morate koristiti |_+_| sa |_+_| opcija.
-p
Provjera usluge
Nakon ručnog pokretanja usluge ili nakon ponovnog pokretanja računala, možemo provjeriti radi li naša usluga ispravno.
while
Prikazuje nam se status usluge.
Također nam je prikazano zadnjih 10 unosa u dnevnik koje je proizvela ova usluga. Nije iznenađujuće, svi su u razmaku od jedne minute.
Zaustavljanje i onemogućavanje usluge
Ako trebate zaustaviti uslugu, to možete učiniti s ovom naredbom:
TIMESTAMP
Oglas
To zaustavlja uslugu, ali ne sprječava je da se ponovno pokrene sljedeći put kada se računalo ponovno pokrene. Da biste zaustavili pokretanje usluge pri pokretanju, morate to učiniti onemogućiti to:
/usr/local/bin
Ako je usluga pokrenuta, ova naredba je ne zaustavlja. Jednostavno govori |_+_| da ne pokrenete uslugu pri sljedećem ponovnom pokretanju.
Ako želite zaustaviti uslugu i spriječiti njeno pokretanje pri pokretanju, koristite obje naredbe.
Savjet za uslugu
Provjerite radi li vaš program prema očekivanjima prije nego što ga pokušate pokrenuti kao uslugu.
POVEZANO: Najbolja prijenosna računala s Linuxom za programere i entuzijaste
PROČITAJTE SLJEDEĆEDave McKay je prvi put koristio računala kada je bušena papirna traka bila u modi i od tada se bavi programiranjem. Nakon više od 30 godina u IT industriji, sada je stalni tehnološki novinar. Tijekom svoje karijere radio je kao freelance programer, voditelj međunarodnog tima za razvoj softvera, voditelj projekta IT usluga, a nedavno i kao službenik za zaštitu podataka. Njegovo pisanje objavili su howtogeek.com, cloudsavvyit.com, tenterpriser.com i opensource.com. Dave je Linux evanđelist i zagovornik otvorenog koda.
Pročitajte cijelu biografiju