Fino podešavanje pokretanja u Ubuntu serveru. Kreiranje vlastite skripte za automatsko pokretanje kada se računar pokrene Kako automatski pokrenuti komandu u Linuxu

Dom / Tehnologije

Ubuntu ima 2 glavna nivoa automatskog pokretanja - u sistemu inicijalizacije systemd i u radnom okruženju. Za prilagođeni softver, pokretanje u Ubuntu-u može se konfigurirati u prikladnom grafičkom uslužnom programu. Možete dodati program ili vlastitu skriptu za automatsko pokretanje.

Autoboot u Ubuntu

Trenutni Ubuntu 18.04 podrazumevano koristi GnomeShell kao svoje radno okruženje. Za konfiguraciju automatskog pokretanja u ovoj verziji OS-a trebate:

Savjet! Da biste bili sigurni da je naredba ispravna, morate instalirati uslužni program “Glavni meni” iz UbuntuSoftwareCenter.

U njemu izaberite stavku od interesa i otvorite njena svojstva. Ispravna komanda kopirano iz istoimenog reda.

Aplikacije u Ubuntu-u koje su prisutne na listi i označene kvačicom biće pokrenute svaki put kada se OS pokrene. Ovo su sve aplikacije datog korisnika, sistemski programi i usluge, uslužni program ne prikazuje. IN prethodne verzije operativni sistem sa grafičkom ljuskom Unity, uslužni program za podešavanje pokretanja se takođe može pronaći pretraživanjem u Dash meniju ili otvoriti pomoću naredbe u terminalu:

gnome-session-properties.

Kako dodati skriptu za pokretanje Ubuntua

Pored specifičnog softvera, lako je dodati i samostalno napisanu skriptu pokretanju Linuxa kako biste optimizirali svoj rad na računalu. Da biste to uradili potrebno vam je:

  1. Učinite skriptu izvršnom koristeći naredbu:

    sudochmodugo+x /home/user/script.sh

    (gdje je korisnik korisničko ime, a skripta ime skripte, ali putanja do vaše .sh datoteke može biti drugačija: mora biti napisana u cijelosti, inače se skripta neće pokrenuti).

  2. Otvorite "Automatski pokreni aplikacije" i kliknite na "Dodaj".
  3. Unesite naziv skripte, a kao naredbu - puno ime sa putanjom do datoteke, na primjer, /home/user/script.sh.
  4. Kliknite na “Dodaj”.

Postoji još jedan, klasičan, ali se smatra zastarjelim načinom konfiguriranja automatskog pokretanja skripte u Ubuntuu. Da biste ga dovršili potrebno vam je:


Ova metoda je također pogodna za automatsko pokretanje na UbuntuServeru, gdje nema grafike.

Odlaganje pokretanja programa u Ubuntu

Ako postoji mnogo programa u pokretanju Ubuntua, potrebno ih je učitati određenim redoslijedom ili pokrenuti neko vrijeme nakon pokretanja sistema - funkcija odlaganja će pomoći. Da biste ga aktivirali, koristite uslužni program za spavanje unixa. Mogućnosti ovog alata možete iskoristiti u već poznatom programu Startup Applications. Da biste to uradili potrebno vam je:

  1. Otvorite prozor postavki aplikacije za pokretanje.
  2. Kursorom odaberite program čije automatsko pokretanje želite odgoditi i koristite tipku “Promijeni”.
  3. U redak “Command”, prije postojećeg unosa, unesite:

pri čemu je broj iza riječi “sleep” jednak broju sekundi koliko je aplikacija neaktivna neposredno nakon pokretanja sistema, prije pokretanja. Mora postojati razmak između ove formule, koja mora imati tačku i zarez na kraju, i naredbe za pokretanje aplikacije.

U datom primjeru lijenog pokretanja programa u Ubuntu-u, aplikacija ostaje u "sleep" stanju 2 minute prije otvaranja. Na primjer, počevši od pola sata nakon pokretanja OS-a izgledat će kao “ime programa” u trajanju od 3 sata. Primjer gdje prijenos počinje nakon 1 sata:

spavanje 1h; prijenos-gtk %U

Na sličan način možete dodati odgođeno izvršavanje prilagođene skripte ili pokretanje medijske datoteke za pokretanje u Linuxu.

Uklanjanje iz pokretanja Ubuntua

Da biste uklonili softver iz pokretanja Ubuntua, možete koristiti jedan od 2 načina: putem “Automatski pokrenutih aplikacija” ili ručno. U prvom slučaju, samo pokrenite uslužni program, odaberite željeni program i kliknite na "Izbriši". Jednostavno poništavanje polja za potvrdu onemogućava program i neće se pokrenuti kada se sistem pokrene.

Ručna metoda uključuje korištenje autostart foldera u Ubuntu. Nalazi se na /home/username/.config/autostart/ (da vidite ovo skriveni folder, trebali biste otvoriti svoj početni direktorij u file manager i istovremeno pritisnite Ctrl+H). Sadrži datoteke sa ekstenzijom .desktop za svaki program iz automatskog pokretanja, koje se automatski generišu kada se dodaju putem grafičkog uslužnog programa. Dovoljno je izbrisati datoteku kako se program više ne bi otvarao kada uključite računar.

Zaključak

Postoji mnogo načina za automatsko pokretanje u Ubuntu-u fino podešavanje. Njegove mogućnosti je teško shvatiti. Pravilna upotreba ovog alata čini Linux praktičnijim u svakodnevnim zadacima.

Svrha ovog članka je da se upoznate sa principima pokretanja u Ubuntu operativnom sistemu na Ubuntu primjer Server 10.04 LTS, kao i demonstracija postavki pokretanja virtuelna mašina, koji radi pod VirtualBoxom, i ispravno gašenje potonjeg u automatskom režimu kada se isključi Ubuntu Server.

Pažnja! Dolje opisan primjer ne može se primijeniti na postavku pokretanja grafičke aplikacije za određenog korisnika sistema u desktop verzijama Ubuntua. Da biste to učinili, koristite stavku „Aplikacije za pokretanje“ iz glavnog menija Ubuntua.


Prije svega, ovo automatski start usluge/aplikacije kada se operativni sistem pokrene. Pokretanje također može osigurati da se ove usluge/aplikacije graciozno isključe kada se sistem isključi ili ponovo pokrene.

Organizacija pokretanja u Ubuntu serveru.
Naravno, da bi se servis ispravno pokrenuo/zaustavio, potrebno je opisati skriptu sa komandama za pokretanje/zaustavljanje. Pogledajte sadržaj direktorija /etc/init.d: ​​on sadrži skripte koje kontroliraju pokretanje/zaustavljanje usluga na vašem računalu. Dakle, prva, ali ne i poslednja tačka uspešne konfiguracije je prisustvo skripte u /etc/init.d. Skripta ne opisuje kada bi se određena skripta trebala izvršiti. Može prihvatiti samo parametre start, stop, restart i tako dalje. Kako Ubuntu zna kada treba pozvati skriptu? Odgovor leži u direktorijumima /etc/rcN.d, gdje je N broj od 0 do 6. Ovi direktoriji pohranjuju simboličke veze ka skriptama iz /etc/init.d. Pogledajmo šta znači svaki direktorij i sve će odmah postati jasno:
- rc0.d – izvršavanje skripte kada je sistem isključen;
- rc1.d – izvršavanje skripte kada se sistem pokreće u režimu jednog korisnika;
- rc2.d – izvršavanje skripte kada se sistem pokreće u višekorisničkom režimu;
- rc3.d – rc5.d – rezervisano;
- rc6.d – izvršavanje skripte kada se sistem restartuje.

Na primjer, ako dođe do ponovnog pokretanja, sve skripte iz /etc/rc6.d direktorija će se izvršiti, prilikom gašenja - iz /etc/rc0.d itd. Broj u nazivu direktorija naziva se razina pokretanja. To jest, /etc/rc0.d direktorij će se zvati nulti nivo pokretanja, i tako dalje.
Postoji još jedna važna stvar koju trebate znati - ovo je redoslijed kojim se izvršavaju skripte iz rcN.d direktorija. Uostalom, da biste pravilno organizirali start/stop Ubuntu-a, možda ćete morati pokrenuti/zaustaviti usluge određenim redoslijedom. Ova stvar je riješena posebnim imenovanjem datoteka u direktorijima na nivou pokretanja. Fajlovi imaju sljedeća imena: NN[ime], gdje je jedan znak („S“ znači da skripta pokreće uslugu, „K“ ga zaustavlja), NN je redni broj, [ime] je ime datoteke. Ne morate sami da birate karakter “S” ili “K”, jer sve skripte u direktorijumima rc1.d-rc5.d moraju početi sa znakom “S”, au rc0.d i rc6.d direktorije - sa znakom “K”. Broj “NN” određuje redoslijed pokretanja skripti, koji se izvodi od najmanjeg do najvećeg. Što je manji broj za pokretanje skripte, to će se ranije pokrenuti pri pokretanju sistema; Što je veći broj skripte za zaustavljanje usluge, to će se kasnije izvršiti.

Ako trebate pokrenuti bilo koju uslugu ili aplikaciju prije ili nakon određene postojeće usluge, jednostavno potražite njen serijski broj u odgovarajućem rcN.d direktoriju i uzmite ga u obzir pri odabiru serijskog broja za svoju skriptu.

Pa, gdje pohraniti skripte i kako ih nazvati je jasno, ali kako to napisati?
Direktorij /etc/init.d sadrži primjer skripte za kontrolu pokretanja/zaustavljanja usluga. Fajl je /etc/init.d/skeleton, au primjeru ispod bit će pojednostavljen. Da biste kreirali novu skriptu, morate napraviti kopiju primjera i urediti je tako da odgovara vašim potrebama. Koristimo sljedeću naredbu:
sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript

Kada kreirate novu skriptu, nemojte zaboraviti dati joj izvršna prava. Da biste skripti dodali dozvole za izvršavanje, koristite naredbu sudo chmod +x /etc/init.d/myscript

Skripta je spremna. šta je sljedeće?
Neki izvori sadrže preporuke za ručno kreiranje simboličkih veza pomoću naredbe ln, uprkos postojanju specijalnih uslužnih programa. Prije dodavanja skripte, uslužni program provjerava valjanost, a naredba ln će kreirati vezu čak i ako postoje greške. Bolje je dati prednost specijalizovanim uslužnim programima kao što je update-rc.d, koji dolazi u paketu sa Ubuntuom. Uz njegovu pomoć, možete dodati novu skriptu na bilo koji nivo učitavanja, obrisati postojeću i tako dalje. Evo primjera upotrebe:
sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 .

Ova komanda će dodati novu skriptu "myscript" svim nivoima učitavanja. Usluga će biti pokrenuta na nivoima od 2 do 5 sa prioritetom 99 (posljednji), a usluga će biti zaustavljena na nivoima 0, 1 i 6 sa prioritetom 01 (prvi).
Da uklonite skriptu iz pokretanja, koristite naredbu:
sudo update-rc.d -f myscript ukloniti

Pogledajmo primjer postavljanja automatskog učitavanja.
zadatak: konfigurišite automatsko pokretanje virtuelne mašine koja pokreće VirtualBox, koja bi trebalo da počne dve minute nakon pokretanja operativnog sistema Ubuntu Server. Kada isključite ili ponovo pokrenete Ubuntu Server, virtuelna mašina bi se trebala elegantno isključiti.
Pretpostavimo da Ubuntu Server ima instaliran VirtualBox i da postoji virtuelna mašina pod nazivom “Slave” čiji operativni sistem podržava mogućnost gracioznog isključivanja kada pritisnete dugme za gašenje (ACPI podrška).

Prvo, napišimo skriptu koja će se nalaziti u direktoriju /etc/init.d:
sudo cp /etc/init.d/skeleton /etc/init.d/slave && sudo vi /etc/init.d/slave

Nakon što uredimo skriptu i ostavimo samo minimum potrebnog, dobijamo fajl sa sledećim sadržajem:
#!/bin/sh ### BEGIN INIT INFO # Pruža: slave # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Kratak opis: mogućnost za pokretanje i spremanje izvršnog stanja VBox virtuelnih mašina # Opis: Ova skripta se koristi za pokretanje i čuvanje stanja izvršenja VBox virtuelnih mašina korišćenjem System-V na Ubuntu serveru. Ovu datoteku treba staviti u /etc/init.d ### END INIT INFO # Autor: Fuks Alexander . /lib/lsb/init-functions # Izvrši početak slave-ove virtuelne mašine sa odgodom od 2 minute perform_start() ( log_daemon_msg "Pokretanje Vbox Slave mašine" sleep 120 && su -l -c "VboxHeadless –startvm Slave &" kungfux log_end_msg 0 return 0 ) # Pošalji POWEROFF ACPI signal za slave virtuelnu mašinu perform_save() ( log_daemon_msg "Slanje ACPI POWER OFF signala za Vbox Slave mašinu" su -l -c "VboxManage controlvm Slave acpipowerbutton" kungfux log_end_msg) 0 case return "$ 1 ” u startu) perform_start ;;

stop) perform_save ;;

Kungfux@itworks:~$ sudo update-rc.d slave start 99 2 3 4 5 . stop 01 0 1 6 . Dodavanje pokretanja sistema za /etc/init.d/slave ... /etc/rc0.d/K01slave -> ../init.d/slave /etc/rc1.d/K01slave -> ../init.d/ slave /etc/rc6.d/K01slave -> ../init.d/slave /etc/rc2.d/S99slave -> ../init.d/slave /etc/rc3.d/S99slave -> ../ init.d/slave /etc/rc4.d/S99slave -> ../init.d/slave /etc/rc5.d/S99slave -> ../init.d/slave

Nakon ponovnog pokretanja, možete provjeriti da li je komanda pokretanja virtuelne mašine završena. Pogledajmo izvještaj o lansiranju:

Kungfux@itworks:~$ cat /var/log/boot.log fsck iz util-linux-ng 2.17.2 /dev/sda1: čist, 92526/4751360 fajlovi, 2565789/18975488 blokovi * Pokretanje Jenkins-a jenkins-a Pokretanje kontinuirane integracije servera No-IP.com dinamičko ažuriranje adrese noip2 * Ne pokreće internet superserver: nisu omogućene usluge * Pokretanje Postfix agenta za prijenos pošte postfix * Pokretanje bittorrent demona prijenosa-daemon * Pokretanje VirtualBox modula kernela * Pokretanje NTP servera ntpd * Pokretanje ftp servera proftpd * Pokretanje weba server apache2 * Pokretanje Vbox Slave mašine

Posljednji red sadrži tekst koji je izašao pomoću “slave” skripte.
Štaviše, skripte napisane za init.d mogu se koristiti sa terminala u bilo koje vrijeme. Na primjer, da pokrenete virtuelnu mašinu, pokrenite naredbu:
kungfux@itworks:~$ /etc/init.d/slave start

Kao što se može vidjeti iz primjera, Ubuntu operativni sistem pruža bogate mogućnosti za kontrolu pokretanja/zaustavljanja usluga/programa. U skriptama za pokretanje možete opisati ovisnosti servisa koji se pokreću/zaustavljaju na drugim uslugama pomoću odjeljaka “Required-Start/Required-Stop”, a sama skripta može biti bilo koje složenosti, što vam omogućava da organizirate čak i najviše “delikatno” pokretanje.

Ovaj materijal je napisan za „Prvo takmičenje članaka na ruskom jeziku za Ubuntu OS 2011“ (konkurs.ubuntu.ru).

Konstantno koristimo mnoge programe i pokrećemo ih svaki put kada se sistem pokrene, a neki, poput instant messengera ili raznih uslužnih programa, moraju stalno raditi u pozadini kako bi ispravno obavili svoj zadatak. U tu svrhu u operativni sistemi postoji autoloading. Programi se automatski pokreću nakon pokretanja OS ili grafičke ljuske.

U ovom članku ćemo govoriti o tome kako autoboot funkcionira u Ubuntu-u, koje metode pokretanja postoje na ovom sistemu i kako tamo dodati programe.

AUTOBOOT U UBUNTU

Prva stvar koju treba reći je da postoji nekoliko nivoa pokretanja u Ubuntu-u. Neću govoriti o systemd i , jer sam to već obradio u jednom od prvih članaka. Program ili skripta se može dodati pokretanju na sljedeće načine:

  • Uslužni program "Automatski pokrenute aplikacije";
  • "Startup" folder;
  • Datoteka rc.local;
  • Xinitrc fajl;

Razmotrit ćemo prve dvije metode, budući da su posljednje dvije više dizajnirane za skripte, a ne za programe. Prvo, automatski pokrenite Ubuntu koristeći standardni uslužni program.

Otvorite sistemski meni i otkucajte "Auto" i otvorite program koji će biti prvi na listi, Startup Applications:

Ovdje će biti navedene sve aplikacije koje se trenutno pokreću automatski. Da biste dodali drugu aplikaciju za pokretanje ubuntua, kliknite na dugme "Dodaj":

Ovdje trebate unijeti naziv nove stavke, kao i naredbu za pokretanje aplikacije. Možete odabrati aplikaciju u sistem datoteka, ako se ne sjećate putanje, pritisnite dugme "Recenzija":

Možete odrediti parametre u naredbi ako je potrebno. Također možete popuniti polje "Opis", ali to više nije potrebno. Ako ti treba specifičan program iz glavnog menija, ali ne znate gde da ga pronađete i kako da napišete njegovu komandu, možete je potražiti u istom meniju. Ali za to moramo prvo instalirati uslužni program "glavni meni" iz App centra:

Ovdje morate obratiti pažnju na liniju "tim", kopirajte ga i možete ga koristiti za pokretanje.

Sljedeća metoda je direktorij za pokretanje. Nalazi se na ~/.config/autostart. U suštini, ovo je isti metod, samo što se može uraditi bez grafičkog interfejsa. Kada konfigurišete pokretanje putem aplikacije, u ovoj fascikli se kreiraju datoteke postavki pod nazivom desktop. Evo, na primjer:

Podsećam vas na to da biste pogledali skrivene datoteke potrebno je da pritisnete kombinaciju tastera Ctrl+H. Sada pokušajmo da kreiramo novu konfiguracionu datoteku za drugi program. Ovo bi bila njegova sintaksa:


Tip = Aplikacija
Ime = naziv_nove_stavke
Exec = komanda
Ikona = full_path_to_icon
Komentar = komentar
X-GNOME-Autostart-enabled= istina

Na primjer, napravimo datoteku za pokretanje VLC playera, izgledat će ovako:

vi ~/.config/autostart/vlc.desktop


Vrsta=Aplikacija
Ime=VLC
Exec=vlc
Ikona=/usr/share/icons/hicolor/16x16/apps/vlc.png
Comment=VLC Media Player
X-GNOME-Autostart-enabled=true

Gotovo, a zabavni dio je da ako otvorite aplikaciju za pokretanje. Ta stavka će se također pojaviti tamo. Ovo je način konfigurisanja bez grafičkog interfejsa.

ZAKLJUČCI

U ovom kratkom članku pogledali smo kako je konfigurirano automatsko učitavanje ubuntu programe na razne načine- kroz GUI i terminal. Ovo znanje možete koristiti da poboljšate svoje iskustvo sa sistemom. Iako je Ubuntu prešao na Gnome, pokretanje u Ubuntu 16.04 i dalje izgleda skoro isto. Ako imate pitanja, pitajte u komentarima!

Povezani postovi:


Nakon pokretanja računara, po pravilu, moramo pokrenuti neke programe. koje najčešće koristimo. Također, nakon pokretanja sistema, možda ćemo morati izvršiti neke specifične napore, na primjer, kreirati potrebne datoteke ili postavite neke parametre. U ovom članku ćemo pogledati kako funkcionira automatsko učitavanje Linuxa, kako dodati programe za pokretanje, gdje bi ih bilo prikladnije dodati, kao i koje vrste automatskog učitavanja postoje u ovom operativnom sistemu.

Procedura za uključivanje usluge u pokretanje Linuxa pretpostavlja da je potrebni program već instaliran pomoću upravitelja paketa ili kompajliran. Opšti pogled na poziv potrebne komande predstavljeno u primjeru ispod.

systemctl omogući service_name.service
update.rc service_name defaults
chkconfig --dodaj ime_servisa

Dodavanje programa za pokretanje u Linuxu

Ovaj primjer opisuje kako dodati nginx u startup? Isto tako, dodajemo i druge programe! Prvo morate postaviti prava na izvršavanje datoteke:

chmod +x /etc/init.d/nginx

Zatim ga upisujemo u autoload:

/usr/sbin/update-rc.d -f nginx zadane postavke

Dodavanje programa za pokretanje u Linuxu

Kreirajte fajl u /etc/init.d/

sudo nano /etc/init.d/

Na početku skripte morate dodati:

Postavite prava izvršenja na /etc/init.d/local:

sudo chmod +x /etc/init.d/local

Dodajte skriptu /etc/init.d/local u autorun:

sudo update-rc.d lokalne zadane postavke 80

Sada možemo dodati komande našoj lokalnoj skripti koje se moraju izvršiti kada se sistem pokrene.

Kreirajte prazan fajl.

U prvom redu pišemo:

#!/bin/sh

Ova linija određuje koju komandnu ljusku koristiti. Sledeci su vasi timovi.

Sačuvajmo ga pod originalnim imenom (da se ne poklapa sa postojećim) u /usr/sbin/ direktorijum.

Da bi se skripta pokrenula pri pokretanju, potrebno je da je registrujete u /etc/rc.local fajlu do linije izlaza 0. Ako nemate ovaj fajl, kreirajte ga i zalijepite u njega sljedeći sadržaj:

#!/bin/sh -e #Ovde ubacujemo liniju koja označava vašu skriptu. /usr/sbin/mescripts izlaz 0

Malo komplikovaniji način

Omogućava vam da postavite sekvencu učitavanja i ponašanje skripte na različitim nivoima pokretanja.

Proučavamo /etc/init.d/skeleton, na osnovu njega kreiramo skriptu /etc/init.d/my_script koja će pokrenuti/zaustaviti našu aplikaciju.

Ovi direktoriji sadrže skripte za zaustavljanje usluga:

/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/

Ovo su skripte za pokretanje usluge:

/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/

Proučavamo ih radi konzistentnosti (što je manja prva cifra na početku skripte, to se aplikacija ranije pokreće/zaustavlja). Ovo može biti kritično ako vaša aplikacija ovisi o nekim uslugama.

Nakon što smo se odlučili za skriptu i redoslijed pokretanja, radimo sljedeće:

Sudo update-rc.d my_script start 70 2 3 4 5 . zaustaviti 20 0 1 6 .

Ovdje sam odredio da bi moja skripta trebala početi kasnije od ostalih (70), a stati ranije (20). Brojevi 2 3 4 5 0 1 6 označavaju nivoe opterećenja.

Ako vam se nešto ne sviđa, možete sve izbrisati

Sudo update-rc.d -f my_script ukloni

Pogledajte man update-rc.d za detalje.

Izvršavanje skripte kada je mreža uključena/isključena

Postoji direktorij /etc/network/ sa poddirektorijumima if-down.d, if-pre-up.d, if-post-down.d, if-up.d. Ako stavite skriptu u jedan od ovih poddirektorija, ona će se izvršiti pri gašenju, prije uključivanja, nakon isključivanja ili pri uključivanju mreže.

Drugi način je da navedete jednu od sljedećih direktiva u datoteci /etc/network/interfaces: up , pre-up , post-up , down , pre-down , post-down . Na primjer, linija

Post-up /path/to/script.sh

nakon uključivanja mreže će izvršiti skriptu script.sh. Više možete pročitati u man interfejsima.

U svakom slučaju, skripta mora imati dozvole da dozvoli izvršenje, inače se neće moći pokrenuti.

© 2024 ermake.ru -- O popravci računara - Informativni portal