Reglarea fină a pornirii în Ubuntu Server. Crearea propriului script de rulare automată la pornirea computerului Cum să rulați automat o comandă în Linux

Acasă / Tehnologii

Ubuntu are 2 niveluri principale de rulare automată - în sistemul de inițializare systemd și în mediul de lucru. Pentru software personalizat, pornirea în Ubuntu poate fi configurată într-un utilitar grafic convenabil. Puteți adăuga un program sau propriul script la rulare automată.

Pornire automată în Ubuntu

Actualul Ubuntu 18.04 folosește GnomeShell ca mediu de lucru în mod implicit. Pentru a configura rularea automată în această versiune a sistemului de operare, aveți nevoie de:

Sfat! Pentru a vă asigura că comanda este corectă, trebuie să instalați utilitarul „Meniu principal” din UbuntuSoftwareCenter.

În el, selectați articolul de interes și deschideți proprietățile acestuia. Comanda corectă copiat de pe linia cu același nume.

Aplicațiile din Ubuntu care sunt prezente în listă și marcate cu o bifă vor fi lansate de fiecare dată când sistemul de operare pornește. Toate acestea sunt aplicații utilizator dat, programe de sistemși servicii, utilitatea nu se afișează. ÎN versiunile anterioare sistem de operare cu shell-ul grafic Unity, utilitarul pentru configurarea pornirii poate fi găsit și căutând în meniul Dash sau deschis folosind comanda din terminal:

gnome-session-properties.

Cum să adăugați un script la pornirea Ubuntu

Pe lângă software-ul specific, este ușor să adăugați un script auto-scris la pornirea Linux pentru a vă optimiza munca pe computer. Pentru a face acest lucru aveți nevoie de:

  1. Faceți scriptul executabil folosind comanda:

    sudochmodugo+x /home/user/script.sh

    (unde user este numele de utilizator și script este numele scriptului, dar calea către fișierul dvs. .sh poate fi diferită: trebuie scrisă în întregime, altfel scriptul nu va rula).

  2. Deschideți „Porniți automat aplicațiile” și faceți clic pe „Adăugați”.
  3. Introduceți numele scriptului și, ca comandă - numele complet cu calea către fișier, de exemplu, /home/user/script.sh.
  4. Faceți clic pe „Adăugați”.

Există o altă modalitate, clasică, dar considerată depășită, de a configura scriptul autorun în Ubuntu. Pentru a o completa aveți nevoie de:


Această metodă este potrivită și pentru pornirea automată pe UbuntuServer, unde nu există grafică.

Întârzierea programelor de pornire în Ubuntu

Dacă există o mulțime de programe în pornirea Ubuntu, acestea trebuie să fie încărcate într-o anumită ordine sau lansate la ceva timp după pornirea sistemului - funcția de întârziere va ajuta. Pentru a-l activa, utilizați utilitarul Unix Sleep. Puteți profita de capacitățile acestui instrument în programul deja familiar Startup Applications. Pentru a face acest lucru aveți nevoie de:

  1. Deschideți fereastra de setări a aplicației de pornire.
  2. Selectați cu cursorul programul a cărui rulare automată doriți să amânați și utilizați butonul „Schimbare”.
  3. În linia „Comandă”, înainte de intrarea existentă, introduceți:

unde numărul de după cuvântul „sleep” este egal cu numărul de secunde în care aplicația este inactivă imediat după pornirea sistemului, înainte de pornire. Trebuie să existe un spațiu între această formulă, care trebuie să aibă punct și virgulă la sfârșit, și comanda de lansare a aplicației.

În exemplul dat de pornire leneșă a programelor în Ubuntu, aplicația rămâne în stare de „sleep” timp de 2 minute înainte de deschidere. De exemplu, începerea la o jumătate de oră după pornirea sistemului de operare va arăta ca „numele programului” de 3 ore de somn. Exemplu în care transmisia începe după 1 oră:

dormi 1h; transmisie-gtk %U

Într-un mod similar, puteți adăuga execuția amânată a unui script personalizat sau lansarea unui fișier media la pornirea în Linux.

Eliminarea de la pornirea Ubuntu

Pentru a elimina software-ul de la pornirea Ubuntu, puteți utiliza una dintre cele 2 metode: prin „Aplicații lansate automat” sau manual. În primul caz, rulați utilitarul, selectați programul doritși faceți clic pe „Șterge”. Pur și simplu debifarea casetei dezactivează programul și nu va porni când sistemul pornește.

Metoda manuală implică utilizarea folderului autostart în Ubuntu. Se află la /home/username/.config/autostart/ (pentru a vedea asta folder ascuns, ar trebui să deschideți directorul principal în manager de fișiereși apăsați Ctrl+H în același timp). Conține fișiere cu extensia .desktop pentru fiecare program din autorun, care sunt generate automat atunci când sunt adăugate printr-un utilitar grafic. Este suficient să ștergeți fișierul, astfel încât programul să nu se mai deschidă atunci când porniți computerul.

Concluzie

Există multe modalități de a porni automat în Ubuntu reglaj fin. Capacitățile sale sunt greu de înțeles. Utilizarea corectă a acestui instrument face Linux mai practic în sarcinile de zi cu zi.

Scopul acestui articol este de a vă familiariza cu principiile de pornire în sistemul de operare Ubuntu Exemplu Ubuntu Server 10.04 LTS, precum și o demonstrație a setărilor de pornire mașină virtuală, care rulează sub VirtualBox și închiderea corectă a acestuia din urmă în modul automat la oprirea Ubuntu Server.

Atenţie! Exemplul descris mai jos nu poate fi aplicat la setarea de pornire aplicatii grafice pentru un anumit utilizator de sistem în versiunile desktop ale Ubuntu. Pentru a face acest lucru, utilizați elementul „Aplicații de pornire” din meniul principal Ubuntu.


În primul rând, asta pornire automată servicii/aplicații când sistemul de operare pornește. Pornirea poate asigura, de asemenea, că aceste servicii/aplicații se închid cu grație atunci când sistemul este oprit sau repornit.

Organizarea pornirii în Ubuntu Server.
Desigur, pentru a porni/opri corect serviciul, este necesar să descrii un script cu comenzi de pornire/oprire. Aruncă o privire la conținutul directorului /etc/init.d: ​​acesta conține scripturi care controlează pornirea/oprirea serviciilor pe mașina ta. Deci, primul, dar nu ultimul punct de configurare reușită este prezența unui script în /etc/init.d. Scriptul nu descrie când trebuie executat un anumit script. Poate accepta doar parametrii start, stop, restart și așa mai departe. Cum știe Ubuntu când să apeleze scriptul? Răspunsul se află în directoarele /etc/rcN.d, unde N este un număr de la 0 la 6. Aceste directoare stochează link-uri simbolice către scripturi din /etc/init.d. Să ne uităm la ce înseamnă fiecare director și totul va deveni imediat clar:
- rc0.d – executarea scriptului când sistemul este oprit;
- rc1.d – execuția scriptului când sistemul pornește în modul single-user;
- rc2.d – execuția scriptului când sistemul pornește în modul multi-user;
- rc3.d – rc5.d – rezervat;
- rc6.d – executarea scriptului la repornirea sistemului.

De exemplu, dacă există o repornire, toate scripturile din directorul /etc/rc6.d vor fi executate, la închidere - din /etc/rc0.d și așa mai departe. Numărul din numele directorului se numește nivel de rulare. Adică, directorul /etc/rc0.d va fi numit runlevel zero și așa mai departe.
Mai există un punct important pe care trebuie să-l știți - aceasta este ordinea în care sunt executate scripturile din directoarele rcN.d. La urma urmei, pentru a organiza corect pornirea/oprirea Ubuntu, poate fi necesar să porniți/opriți serviciile într-o anumită ordine. Acest punct este rezolvat prin denumirea specială a fișierelor din directoarele la nivel de rulare. Fișierele au următoarele nume: NN[nume], unde este un caracter („S” înseamnă că scriptul pornește serviciul, „K” îl oprește), NN este un număr de secvență, [nume] este numele fișierului. Nu trebuie să alegeți singur caracterul „S” sau „K”, deoarece toate scripturile din directoarele rc1.d-rc5.d trebuie să înceapă cu caracterul „S”, iar în rc0.d și rc6.d directoare - cu caracterul „K” . Numărul „NN” determină ordinea în care sunt lansate scripturile, care se realizează de la cel mai mic la cel mai mare. Cu cât este mai mic numărul pentru rularea scriptului, cu atât acesta va fi lansat mai devreme la pornirea sistemului; Cu cât numărul scriptului de oprire a serviciului este mai mare, cu atât acesta va fi executat mai târziu.

Dacă trebuie să lansați orice serviciu sau aplicație înainte sau după un anumit serviciu existent, pur și simplu căutați numărul de serie al acestuia în directorul rcN.d corespunzător și luați în considerare atunci când alegeți un număr de serie pentru scriptul dumneavoastră.

Ei bine, unde să stocați scripturile și cum să le numiți este clar, dar cum să le scrieți?
Directorul /etc/init.d conține un exemplu de script pentru controlul pornirii/opririi serviciilor. Fișierul este /etc/init.d/skeleton, iar în exemplul de mai jos va fi simplificat. Pentru a crea un nou script, trebuie să faceți o copie a exemplului și să o editați pentru a se potrivi nevoilor dvs. Să folosim următoarea comandă:
sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript

Când creați un nou script, nu uitați să îi acordați drepturi de execuție. Pentru a adăuga permisiuni de execuție la un script, utilizați comanda sudo chmod +x /etc/init.d/myscript

Scenariul este gata. Ce urmează?
Unele surse conțin recomandări pentru crearea manuală a legăturilor simbolice folosind comanda ln, în ciuda existenței utilitati speciale. Înainte de a adăuga un script, utilitarul verifică valabilitatea acestuia, iar comanda ln va crea o legătură chiar dacă există erori. Este mai bine să acordați preferință utilităților specializate, cum ar fi update-rc.d, care vine la pachet cu Ubuntu. Cu ajutorul acestuia, puteți adăuga un nou script la orice nivel de încărcare, puteți șterge unul existent și așa mai departe. Iată un exemplu de utilizare:
sudo update-rc.d myscript start 99 2 3 4 5 . oprire 01 0 1 6 .

Această comandă va adăuga un nou script „myscript” la toate nivelurile de încărcare. Serviciul va fi pornit la nivelurile 2 până la 5 cu prioritate 99 (ultimul) și serviciul va fi oprit la nivelurile 0, 1 și 6 cu prioritate 01 (prima).
Pentru a elimina scriptul de la pornire, utilizați comanda:
sudo update-rc.d -f myscript remove

Să ne uităm la un exemplu de configurare a încărcării automate.
Sarcină: configurați lansarea automată a unei mașini virtuale care rulează VirtualBox, care ar trebui să înceapă la două minute după pornirea sistemului de operare Ubuntu Server. Când închideți sau reporniți Ubuntu Server, mașina virtuală ar trebui să se închidă cu grație.
Să presupunem că Ubuntu Server are instalat VirtualBox și există o mașină virtuală numită „Slave” al cărei sistem de operare acceptă capacitatea de a se închide cu grație atunci când apăsați butonul de închidere (suport ACPI).

Mai întâi, să scriem un script care va fi localizat în directorul /etc/init.d:
sudo cp /etc/init.d/skeleton /etc/init.d/slave && sudo vi /etc/init.d/slave

După editarea scriptului și lăsând doar minimul necesar, obținem un fișier cu următorul conținut:
#!/bin/sh ### BEGIN INIT INFO # Furnizează: slave # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: abilitate pentru pornirea și salvarea stării de execuție a mașinilor virtuale VBox # Descriere: Acest script este utilizat pentru pornirea și salvarea stării de execuție a mașinilor virtuale VBox utilizând System-V pe Ubuntu Server. Acest fișier ar trebui să fie plasat în /etc/init.d ### END INIT INFO # Autor: Fuks Alexander . /lib/lsb/init-functions # Efectuați pornirea mașinii virtuale a Slave cu întârziere de 2 minute perform_start() ( log_daemon_msg „Pornirea mașinii Vbox Slave” sleep 120 && su -l -c „VboxHeadless –startvm Slave &” kungfux log_end_msg 0 return 0 ) # Trimite semnal POWEROFF ACPI pentru mașina virtuală a slavei perform_save() ( log_daemon_msg "Trimitere semnal ACPI POWER OFF pentru mașina slave Vbox" su -l -c "VboxManage controlvm Slave acpipowerbutton" kungfux log_end_msg 0 return 0 ) case "$1 ” în start) perform_start ;;

stop) perform_save ;;

Kungfux@itworks:~$ sudo update-rc.d slave start 99 2 3 4 5 . oprire 01 0 1 6 . Se adaugă pornirea sistemului pentru /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

După repornire, puteți verifica dacă comanda de pornire a mașinii virtuale a fost finalizată. Să ne uităm la raportul de lansare:

Kungfux@itworks:~$ cat /var/log/boot.log fsck de la util-linux-ng 2.17.2 /dev/sda1: curat, 92526/4751360 fișiere, 2565789/18975488 blocuri * Pornirea Jenkins Continuous Integration Server Jenkins * Actualizare dinamică a adresei No-IP.com noip2 * Nu pornește superserverul de internet: nu sunt servicii activate * Pornește Postfix Mail Transport Agent postfix * Pornește demonul bittorrent transmission-daemon * Pornește modulele kernelului VirtualBox * Pornește serverul NTP ntpd * Pornește serverul ftp proftpd * Pornește web server apache2 * Pornirea mașinii Vbox Slave

Ultima linie conține textul care a fost scos de scriptul „slave”.
Mai mult, scripturile scrise pentru init.d pot fi folosite oricând din terminal. De exemplu, pentru a porni o mașină virtuală, rulați comanda:
kungfux@itworks:~$ /etc/init.d/slave start

După cum se poate vedea din exemplu, sistemul de operare Ubuntu oferă capabilități bogate pentru controlul pornirii/opririi serviciilor/programelor. În scripturile de pornire, puteți descrie dependențele serviciilor care sunt pornite/oprite de alte servicii folosind secțiunile „Required-Start/Required-Stop”, iar scriptul în sine poate fi de orice complexitate, ceea ce vă permite să organizați chiar și cele mai multe pornire „delicată”.

Acest material a fost scris pentru „Primul concurs de articole în limba rusă pentru Ubuntu OS 2011” (konkurs.ubuntu.ru).

Folosim multe programe în mod constant și le lansăm de fiecare dată când sistemul pornește, iar unele, precum mesageria instantanee sau diverse utilitare, trebuie să ruleze constant în fundal pentru a-și îndeplini sarcinile corect. În acest scop în sisteme de operare există încărcare automată. Programele pornesc automat după ce sistemul de operare sau shell-ul grafic a pornit.

În acest articol vom vorbi despre cum funcționează autoboot-ul în Ubuntu, ce metode de pornire există pe acest sistem și cum să adăugați programe acolo.

AUTOBOOT ÎN UBUNTU

Primul lucru de spus este că există mai multe niveluri de pornire în Ubuntu. Nu voi vorbi despre systemd și , deoarece am tratat deja acest lucru într-unul dintre primele articole. Un program sau un script poate fi adăugat la pornire în următoarele moduri:

  • Utilitar „Aplicații lansate automat”;
  • folderul „Startup”;
  • Fișier rc.local;
  • fișier Xinitrc;

Vom lua în considerare primele două metode, deoarece ultimele două sunt mai mult concepute pentru scripturi decât pentru programe. Mai întâi, porniți automat în Ubuntu folosind un utilitar standard.

Deschideți meniul de sistem și tastați "Auto"și deschideți programul care va fi primul în listă, Aplicații de pornire:

Toate aplicațiile care în prezent se lansează automat vor fi listate aici. Pentru a adăuga o altă aplicație la pornirea ubuntu, faceți clic pe butonul "Adăuga":

Aici trebuie să introduceți numele noului articol, precum și comanda de lansare a aplicației. Puteți selecta aplicația în sistem de fișiere, dacă nu vă amintiți calea, apăsați butonul "Recenzie":

Puteți specifica parametrii în comandă dacă este necesar. De asemenea, puteți completa câmpul "Descriere", dar acest lucru nu mai este necesar. Dacă ai nevoie program specific din meniul principal, dar nu știi unde să-l găsești și cum să-i scrii comanda, o poți căuta în același meniu. Dar pentru aceasta trebuie să instalăm mai întâi utilitarul „Meniul principal” din App Center:

Aici trebuie să fii atent la linie "Echipă", copiați-l și îl puteți utiliza pentru pornire.

Următoarea metodă este folderul de pornire. Se află la ~/.config/autostart. În esență, aceasta este aceeași metodă, doar că se poate face fără o interfață grafică. Când configurați pornirea printr-o aplicație, fișierele de setări numite desktop sunt create în acest folder. Aici, de exemplu:

Vă reamintesc că pentru a privi fișiere ascunse trebuie să apăsați combinația de taste Ctrl+H. Acum să încercăm să creăm un nou fișier de configurare pentru alt program. Aceasta ar fi sintaxa sa:


Tip = Aplicație
Nume = nume_articol_nou
Exec = comanda
Pictograma = calea_completă_la_pictogramă
Comentariu = comentariu
X-GNOME-Autostart-activat= adevărat

De exemplu, să creăm un fișier pentru a lansa playerul VLC, acesta va arăta astfel:

vi ~/.config/autostart/vlc.desktop


Tip=Aplicație
Nume=VLC
Exec=vlc
Pictogramă=/usr/share/icons/hicolor/16x16/apps/vlc.png
Comentariu=VLC Media Player
X-GNOME-Autostart-enabled=adevărat

Gata, iar partea distractivă este că dacă deschideți aplicația de pornire. Acest articol va apărea și acolo. Aceasta este o modalitate de a configura fără interfață grafică.

CONCLUZII

În acest scurt articol, ne-am uitat la modul în care este configurată încărcarea automată programe ubuntu în diverse moduri- prin GUIși terminal. Puteți folosi aceste cunoștințe pentru a vă îmbunătăți experiența sistemului. Chiar dacă Ubuntu a trecut la Gnome, pornirea în Ubuntu 16.04 arată în continuare aproape la fel. Dacă aveți întrebări, întrebați în comentarii!

Postări înrudite:


După pornirea computerului, de regulă, trebuie să lansăm câteva programe. pe care le folosim cel mai des. De asemenea, după pornirea sistemului, este posibil să fie nevoie să efectuăm unele eforturi specifice, de exemplu, să creăm fisierele necesare sau setați niște parametri. În acest articol, vom analiza cum funcționează Linux autoload, cum să adăugați programe de pornire, unde ar fi mai potrivit să le adăugați și, de asemenea, ce tipuri de autoload există în acest sistem de operare.

Procedura de includere a unui serviciu la pornirea Linux presupune că programul necesar este deja instalat folosind un manager de pachete sau compilat. Vedere generală a apelului comenzile necesare prezentate în exemplul de mai jos.

systemctl enable service_name.service
update.rc nume_serviciu implicit
chkconfig --add service_name

Adăugarea de programe la pornire în Linux

Acest exemplu descrie cum să adăugați nginx la pornire? În același mod, adăugăm și alte programe! Mai întâi trebuie să setați drepturile de execuție a fișierului:

chmod +x /etc/init.d/nginx

Apoi îl scriem în autoload:

/usr/sbin/update-rc.d -f valorile implicite nginx

Adăugarea de programe la pornire în Linux

Creați un fișier în /etc/init.d/

sudo nano /etc/init.d/

La începutul scriptului trebuie să adăugați:

Setați drepturile de execuție la /etc/init.d/local:

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

Adăugați scriptul /etc/init.d/local la autorun:

sudo update-rc.d setări locale implicite 80

Acum putem adăuga comenzi la scriptul nostru local care trebuie executate când sistemul pornește.

Creați un fișier gol.

În primul rând scriem:

#!/bin/sh

Această linie specifică ce shell de comandă să folosească. Urmează echipele tale.

Să-l salvăm sub numele original (pentru a nu coincide cu cele existente) în directorul /usr/sbin/.

Pentru ca scriptul să ruleze la pornire, trebuie să îl înregistrați în fișierul /etc/rc.local până la ieșirea de linie 0. Dacă nu aveți acest dosar, creați-l și inserați următorul conținut în el:

#!/bin/sh -e #Aici inserăm o linie care indică scriptul tău. /usr/sbin/mescripts ieșire 0

Un mod puțin mai complicat

Vă permite să setați secvența de încărcare și comportamentul scriptului la diferite niveluri de rulare.

Studiem /etc/init.d/skeleton, pe baza lui creăm un script /etc/init.d/my_script care va porni/opri aplicația noastră.

Aceste directoare conțin scripturi pentru oprirea serviciilor:

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

Acestea sunt scripturile de lansare a serviciului:

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

Le studiem pentru consecvență (cu cât prima cifră de la începutul scriptului este mai mică, cu atât aplicația pornește/se oprește mai devreme). Acest lucru poate fi critic dacă aplicația dvs. depinde de unele servicii.

După ce ne-am hotărât asupra scriptului și secvenței de lansare, efectuăm următoarele:

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

Aici am stabilit că scenariul meu ar trebui să înceapă mai târziu decât celelalte (70) și să se oprească mai devreme (20). Numerele 2 3 4 5 0 1 6 indică nivelurile de încărcare.

Dacă nu vă place ceva, puteți șterge totul

Sudo update-rc.d -f my_script remove

Consultați man update-rc.d pentru detalii.

Executarea unui script când rețeaua este pornită/oprită

Există un director /etc/network/ cu subdirectoare if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Dacă plasați scriptul într-unul din aceste subdirectoare, acesta va fi executat respectiv la oprire, înainte de pornire, după oprire sau la pornirea rețelei.

O altă modalitate este de a specifica una dintre următoarele directive în fișierul /etc/network/interfaces: up , pre-up , post-up , down , pre-down , post-down . De exemplu, linia

Post-up /path/to/script.sh

după pornirea rețelei va executa scriptul script.sh. Puteți citi mai multe în interfețele man.

În orice caz, scriptul trebuie să aibă permisiuni pentru a permite execuția, altfel nu va putea rula.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații