Sistemul de inițializare ciocoi ce este și cum funcționează

Având servere în centre de date sigure din Europa. Deschideți nor VPS server / VDS pe un SSD rapid în 1 minut!

Cel mai bun Web Hosting:
- va proteja datele împotriva accesului neautorizat într-un centru european de date securizat
- va plăti cel puțin în Bitcoin.
- Acesta va pune distribuție

- protecție împotriva atacurilor DDoS-
- gratuit de backup
- Uptime 99,9999%
- DPC - TIER III
- ISP - NIVELULUI I

Suport în 24/7/365 rusă lucra cu persoane juridice și persoane fizice. Ai nevoie de acum 24 de bază și 72 GB RAM. Vă rog!

Tarifele noastre competitive dovedesc că cele mai ieftine de găzduire pe care nu a știut!

O chestiune de minute, selectați configurația, să plătească și CMS pe un VPS este gata.
Bani Înapoi - 30 de zile!

Carduri bancare, moneda electronică prin intermediul unor terminale QIWI, Webmoney, PayPal, Novoplat și altele.

Pune o intrebare 24/7/365 Suport

Găsiți răspunsurile în baza noastră de date, și să respecte recomandările din

Inițializarea - aceasta este o procedură foarte important care stă la baza oricărui sistem de operare bazat pe Unix. Acesta gestionează servicii și scenarii. Deosebit de important pentru inițializarea serverelor care au nevoie pentru a optimiza performanța.

Inițializarea este alcătuit din următoarele etape:

  • Descărcați server;
  • Pornirea procesului de inițializare (de obicei, are un PID 1);
  • succesiune de sarcini predefinite Începând;

Inițializarea asigură o corectă pornire și oprire a serverului.

În acest ghid, vom discuta despre ciocoi - un sistem convenabil și productiv de inițializare.

O prezentare generală a Upstart

Sistemul Upstart proiectat initial cu accent pe flexibilitate, deoarece oferă o varietate de abordări care nu sunt în inițializarea standard de sistem. În mod implicit, este utilizat astfel încât sistemul Red Hat Enterprise Linux (RHEL) 6, sistemul de operare Chrome și Ubuntu distribuții de până la versiunea 15.04.

Upstart imparte procesele de lucru (locuri de muncă), în sarcina (locuri de muncă de sarcini) și servicii (locuri de muncă de servicii, poate rula în fundal). Există, de asemenea, procese care funcționează atâta timp cât acestea nu se opresc utilizatorul.

Evenimente - aceasta semnale sau apeluri care declanșează o acțiune specifică. Cel mai comun exemplu este un proces de monitorizare a evenimentului (pornire, a început, oprire, oprit).

Realizarea de evenimente

Procesul de eveniment de declanșare este numit de punere în aplicare. De obicei, evenimentul începe procesul, dar, dacă este necesar, administratorul le poate porni manual folosind comanda:

initctl emit

O altă comandă utilă pentru a lucra cu Upstart: un control de inițializare.

procesul de configurare

Notă. Sistemul Upstart este foarte productiv Ubuntu, aceasta se datorează faptului că acest tutorial folosește Ubuntu 14.04 server.

Pentru a procesa setările sunt valabile, fișierul de configurare trebuie să îndeplinească următoarele cerințe:

  • Nu ar trebui să fie goale;
  • Nu trebuie să conțină erori;
  • Acesta trebuie să conțină cel puțin un bloc de comenzi (strofe).

Acum, încercați să creați fișierul testjob.conf în directorul / etc / init. extensie .conf indică un fișier de configurare proces de fișier.

sudo nano /etc/init/testjob.conf

Lăsați acest proces scrie un mesaj și ștampila de timp curentă în fișierul jurnal.

Descriere „Un fișier de locuri de muncă de testare pentru experimentarea cu Upstart“
autor „Numele tau“

Acest proces trebuie să fie încărcate după încărcare toate celelalte servicii și procese. Pentru a face acest lucru, adăugați linia:

începe la nivelul de execuție [2345]

Nivelul de performanță, sau nivelul de rulare - acest mod de sistemul de operare al calculatorului. niveluri de performanță sunt desemnate de numere de la 0 la 6.

Acum trebuie să adăugați un cod executabil. Șirul începe cu exec, pentru a indica faptul că acest cod trebuie să fie prelucrate coajă Bash.

exec echo test Iov a fugit la `date` >> /var/log/testjob.log

Notă: echo comandă utilizează backquotes pentru a rula data, iar apoi scrie rezultatul comenzii în jurnal. Dacă ți-e dor backquotes, ecranul afișează pur și simplu data cuvânt.

Salvați și închideți fișierul.

Pentru a vă asigura că totul funcționează corect, porniți manual procesul. Dar, mai întâi, trebuie să verificați eroarea de sintaxă:

În cazul în care echipa a constatat erori, corectați-le. În cazul în care nu există erori, comanda va reveni:

Fișier /etc/init/testjob.conf: sintaxa ok

Folosind următoarea comandă, puteți gestiona procese si back-end servicii (cum ar fi un server de web). Sintaxa sa de bază:

serviciul sudo

În caseta de control, puteți utiliza aceste comenzi:

  • repornire: repornire
  • începe: începe
  • stop: Opriți serviciul
  • Stare: serviciu de stat

Pentru a porni manual procesul, utilizați comanda:

sudo de pornire de serviciu testjob

Acum, verificați fișierul testjob.log:

Această comandă citește fișierul specificat și afișează conținutul:

Acest lucru înseamnă că procesul de testare funcționează corect.

Reporniți serverul, conectați și să rulați din nou comanda:

Fișierul ar trebui să apară într-o linie mai mult:

Deci, de exemplu, unul din procesul pe care au învățat elementele de bază ale Upstart. Acum este timpul să se familiarizeze cu evenimentele și stările de proces.

Statutul de procese și evenimente

procesele de sistem sunt stocate în directorul / etc / init / și procese de utilizator - in catalog

Flux de lucru utilizator sunt executați în sesiunile lor. Astfel de procese sunt nu la nivel de sistem.

Toate procesele, indiferent de tipul lor este întotdeauna definit în fișierul de configurare (.conf), în cazul în care numele lor ar trebui să fie de serviciu sau de a executa o sarcină.

Fiecare sarcină este destinat să lanseze (start) sau stop (oprire). Între aceste două obiective este problema o serie de state, care determină acțiunea curentă a procesului în funcție de scopul.

  • așteptare: starea inițială a procesului.
  • start: pregătirile pentru lansare.
  • de pre-start: sarcini de descărcare numărătoarea inversă.
  • secțiuni de execuție Script: a dat naștere.
  • post de start: efectua operațiuni după procesul de pornire.
  • care rulează: procesul este pe deplin lansat.
  • pre-stop: procesul de preparare sa oprit.
  • oprire: a opri procesul.
  • a ucis: procesul este oprit.
  • post-oprire: curățarea mediului după oprire.

Procesul în stare post-începere a procesului este considerat a fi difuzate. El rămâne rulează într-o stare de pre-stop, în care se pregătește să se oprească. Ulterior, procesul este oprit și merge într-un post-stop (sistem de curățare).

Pentru a vedea modul în care procesul își schimbă starea, setați prioritatea log Upstart (/ var / log / ciocoi /) pentru a depana:

sudo initctl depanare log-prioritate

Rețineți că statele și evenimente - nu același lucru.

procesele de serviciu

Serviciul de proces utilizează fișierele de configurare care vă permit să ruleze procese în fundal.

De exemplu, încercați să instalați serverul Node.js.

Notă. Node.js - un mediu cross-platform pentru aplicațiile server și rețele.

Node.js - un pachet foarte ușor, dar în mod implicit acesta nu este instalat în Ubuntu 14.04. Pentru a instala, introduceți:

sudo apt-get install nodejs

Acum, încearcă să creeze serviciul. Pentru a face acest lucru, creați un nou fișier nodetest.conf în directorul / etc / init.

sudo nano /etc/init/nodetest.conf

Notă. Numele fișierului trebuie să fie descriptiv.

Descrierea „Serviciul pentru un test de node.js server“
autor „Numele tau“

Pentru a configura automat pornirea și oprirea aplicației bazate pe Nodul, adăugați aceste linii la fișierul:

porni sistemul de fișiere sau runlevel [2345]
opri la închidere

Nivelul de declanșare în combinație cu un sistem de fișiere eveniment prevede rularea unui proces în timpul serverul de boot.

Acum trebuie să adăugați la dosar anumite unități anterior. Deoarece această aplicație este un server, trebuie să adăugați la configurația de logare. Pentru a înregistra pornirea și oprirea aplicației, script-ul utilizat de acțiune, script-ul de pre-start și script-ul de pre-stop.

După cum puteți vedea, de pre-start si pre-oprire - aceasta este starea proceselor, dar ele pot fi adăugate la blocuri.

Mai întâi trebuie să adăugați foarte procesul de script-ul. El va primi ID-ul de proces al serverului Nod de fundal, și apoi executați scenariul de aplicare. Notă indentarea în blocul - acestea sunt esențiale pentru sintaxa corectă.

export HOME = "/ srv"
echo $$> /var/run/nodetest.pid
exec / usr / bin / nodejs /srv/nodetest.js

Nodul aplicație necesită director de pornire variabilă, pentru / SRV este exportat în prima linie a blocului. Simboluri set $$ PID a procesului și de a crea un fișier pentru ea.

Acum se concentreze asupra pre-start si pre-oprire. Data, precum și mesaje despre pornirea și oprirea procesului, vor fi incluse în jurnalul de:

echo "[` date`] Nod de test de pornire" >> /var/log/nodetest.log

Notă: Bloc pre-stop conține o linie care elimină PID-fișier. Această sarcină este o parte a procesului de închidere.

rm /var/run/nodetest.pid
echo "[` date`] Nod de test de oprire" >> /var/log/nodetest.log

Fișierul rezultat va avea următoarea formă:

Descrierea "server de test node.js"
autor „Numele tau“
porni sistemul de fișiere sau runlevel [2345]
opri la închidere
scenariu

export HOME = "/ srv"
echo $$> /var/run/nodetest.pid
exec / usr / bin / nodejs /srv/nodetest.js

script-end
script de pre-start

echo "[` date`] Nod de test de pornire" >> /var/log/nodetest.log
script-end

rm /var/run/nodetest.pid
echo "[` date`] Nod de test de oprire" >> /var/log/nodetest.log

Salvați și închideți fișierul.

După cum se menționează în linia exec, script-ul Node.js este rulat de pe server, pentru că trebuie să creați fișierul nodetest.js:

sudo /srv/nodetest.js nano

Script-ul rezultat a face următoarele:

  • Cereri HTTP-Modul Nod.
  • Se creează un server de web HTTP.
  • Furnizarea unui răspuns 200 de stare (OK) în antet
  • Returnează fraza Hello World.
  • Audiții pe portul 8888.

Folosind următorul cod, puteți rula Nodul de aplicare:

var http = require ( "http");
http.createServer (funcție (cerere, răspuns) response.writeHead (200);
Response.Write ( "Hello World");
response.end ();
>) Asculta (8888) .;

Salvarea fișierului, asigurați-vă că nu există erori de sintaxă.

init-checkconf /etc/init/nodetest.conf
nodetest.conf fișier: sintaxa ok

Asigurându-vă că acest cod nu conține erori, reporniți server și deschide link-ul următor:

Bună ziua Expresie Lumea va apărea pe ecran.

Acum, trebuie să verificați dacă logare funcționează. Deschideți setările specificate în jurnalul și pentru a găsi în ea ștampila de timp, în linia de start. După o oprire de serviciu în jurnal va Oprirea liniei.

Pentru a porni comenzi standard (pornire, oprire, repornire, etc.), utilizați următoarea sintaxă:

sudo serviciu nodetest repornire

concluzie

Acest ghid acoperă numai elementele de bază ale lucrului cu Upstart. sistem deschis Upstart - un mijloc de producție și de încredere pentru procesele de scriere.

articole similare