Instaliranje i konfiguriranje Supervisora ​​na Ubuntu 16.04

Supervizor je klijent/poslužitelj sustav koji se koristi za kontrolu niza UNIX procesa, točnije procesa povezanih s projektom ili kupcem. Na primjer, možete koristiti supervizor za stvaranje i praćenje proizvoljnog broja redova radnika vaše web aplikacije.

Komponente ovog sustava su:

  • supervisord: Poslužiteljski dio sustava.
  • supervisorctl: sučelje naredbenog retka koje se koristi za interakciju s poslužiteljem.
  • Web poslužitelj: Jednostavan web poslužitelj i web korisničko sučelje s osnovnom funkcionalnošću u usporedbi s supervisorctl .
  • XML-RPC sučelje: Isti HTTP poslužitelj koji koristi web klijent, služi XML-RPC sučelju koje se može koristiti za kontrolu programa nadzora.

U ovom vodiču instalirat ćemo najnoviju verziju supervizora, pokazati kako supervisorctlpokrenuti programe i upravljati njima putem , te konfigurirati web sučelje za upravljanje našim programima.

Instalacija i osnovna konfiguracija

Instalirat ćemo supervizor putem easy_install, značajke pythonovih alata za postavljanje.

Najprije ažurirajte svoj popis lokalnih paketa, a zatim instalirajte python setuptools.

sudo apt-get update && sudo apt-get install python-setuptools

Sada možemo instalirati supervizor.

sudo easy_install supervisor

Nakon što je instalacija dovršena, moramo generirati našu konfiguracijsku datoteku. Stvorite mapu pod nazivom supervisorunutar /etc.

sudo mkdir /etc/supervisor

A zatim izvršite sljedeće.

echo_supervisord_conf >  /etc/supervisor/supervisord.conf

Ako niste prijavljeni s rootkorisnikom, možete dobiti Permission deniedpogrešku (čak i s sudo). To je zbog preusmjeravanja. Da biste to riješili, prijavite se kao root.

sudo su

Zatim možete ponovno pokrenuti naredbu.

echo_supervisord_conf > /etc/supervisor/supervisord.conf

Sada možete ostaviti rootkorisnika s exitnaredbom. echo_supervisord_confZapovijed dao je našoj nadzornika instalacije.

Osnovna konfiguracija

Otvorite /etc/supervisor/supervisord.confdatoteku i provjerite njen sadržaj. Primijetit ćete da ova konfiguracijska datoteka slijedi INIsintaksu i podijeljena je po odjeljcima (predstavljeni u zagradama kao u [section-name]).

Da bismo dodali programe kojima će upravljati nadzornik, samo trebamo stvoriti odgovarajuće [program]odjeljke. Međutim, kako bismo izbjegli petljanje oko glavne konfiguracijske datoteke svaki put kada trebamo dodati (ili promijeniti) program, koristit ćemo [include]odjeljak. Pronađite ovaj odjeljak, dekomentirajte ga i zatim ga uredite da izgleda ovako.

[include]
files=conf.d/*.conf

Sada ćemo za svaki program koji želimo dodati kreirati .inidatoteku unutar /etc/supervisor/conf.d/direktorija. Kreirajmo ovu mapu.

sudo mkdir /etc/supervisor/conf.d

Pokretanje poslužitelja nadzora

Kao što je već spomenuto, supervizor se sastoji od poslužitelja i klijenata koji se na njega povezuju. Da bismo mogli upravljati i kontrolirati programe, moramo pokrenuti poslužitelj. Da bismo to učinili, registrirat ćemo poslužitelj nadzora u systemd, tako da se poslužitelj može pokrenuti pri pokretanju sustava.

Da biste to učinili, stvorite datoteku pod nazivom supervisord.serviceu /etc/systemd/systemdirektoriju.

sudo touch /etc/systemd/system/supervisord.service

Dodajte sljedeći sadržaj u datoteku.

[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target

[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Alias=supervisord.service

Aktivirajte uslugu nadzora.

sudo systemctl start supervisord.service

Sve dok se servisna datoteka nalazi u /etc/systemd/systemdirektoriju, automatski će se pokrenuti pri pokretanju sustava.

Možete provjeriti status usluge.

systemctl status supervisord.service

Također, možete provjeriti dnevnike.

sudo journalctl -u supervisord.service

Dodavanje programa

Programi kojima upravlja nadzornik dati su u različitim [program]odjeljcima u konfiguraciji. Za svaki program kojim želimo upravljati, kreirat ćemo samostalnu konfiguracijsku datoteku koja informira put izvršne naredbe, sve varijable okoline, kako izvesti u slučaju isključivanja.

Prvo, napravimo jednostavnu skriptu koja bilježi vremensku oznaku. Stvorite datoteku pod nazivom hello_supervisor.sh(gdje god želite, referirat ćemo na cijeli put ove skripte).

touch hello_supervisor.sh

Sada u njega stavite sljedeći sadržaj

#!/bin/bash
while true
do 
    # Echo current timestamp to stdout
    echo Hello Supervisor: `date`
    # Echo 'error!' to stderr
    echo An error ocurred at `date`! >&2
    sleep 1
done

Sada ga učinite izvršnim

chmod +x hello_supervisor.sh

U praktičnom smislu ova skripta je prilično beskorisna. Međutim, možemo ga upotrijebiti da pokažemo moć supervizora. Stvorite odgovarajuću konfiguracijsku datoteku tako što ćete pokrenuti sljedeće.

sudo touch /etc/supervisor/conf.d/hello_supervisor.conf

Sada stavite sljedeći sadržaj u ovu datoteku.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Napomena: Obavezno zamijenite USERsvojim korisničkim imenom.

Pregledat ćemo ovu konfiguraciju korak po korak.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh

Prvo, konfiguracija počinje definiranjem programa imena hello_supervisor . Također obavještava punu putanju izvršne datoteke koju treba pokrenuti.

autostart=true

Ova linija navodi da se ovaj program treba automatski pokrenuti kada se pokrene supervizor.

autorestart=true

Ako se program zatvori iz bilo kojeg razloga, ova linija obavještava nadzornika da automatski ponovno pokrene proces.

stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Ovi retki definiraju mjesto datoteke dnevnika za stderri stdout, respektivno.

Upravljanje programima

Sada kada smo instalirali i konfigurirali nadzornika, možemo upravljati našim procesima.

Nakon dodavanja novog programa, trebali bismo pokrenuti sljedeće dvije naredbe, da obavijestimo poslužitelj da ponovno pročita konfiguracijske datoteke i da primijeni sve promjene.

sudo supervisorctl reread
sudo supervisorctl update

Sada izvršite supervisorctlklijenta.

sudo supervisorctl

Bit ćete dočekani s popisom registriranih procesa. Vidjet ćete proces pozvan hello_supervisorsa RUNNINGstatusom.

hello_supervisor                 RUNNING   pid 6853, uptime 0:22:30
supervisor>

Upišite helpza popis dostupnih naredbi.

supervisor> help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

U Ukratko, možemo start, stopa restartprogrami prolazeći naziv programa kao argument dotične naredbe.

supervisor> stop hello_supervisor 
hello_supervisor: stopped
supervisor> start hello_supervisor 
hello_supervisor: started
supervisor> restart hello_supervisor 
hello_supervisor: stopped
hello_supervisor: started
supervisor> 

tailNaredbom možemo pogledati i izlaz programa .

supervisor> tail hello_supervisor 
Hello Supervisor: Mon Sep 25 19:27:29 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:30 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:31 UTC 2017

Za stderrizlaz također možete koristiti tail.

supervisor> tail hello_supervisor stderr
An error ocurred at Mon Sep 25 19:31:12 UTC 2017!
An error ocurred at Mon Sep 25 19:31:13 UTC 2017!
An error ocurred at Mon Sep 25 19:31:14 UTC 2017!

Pozivanjem statusnaredbe možete vidjeti status svih registriranih programa.

Kada završite, možete odustati.

supervisor> quit

Klijent web poslužitelja

Da biste dopustili pristup web-poslužitelju nadzora, otvorite konfiguracijsku datoteku nadzornika i pronađite [inet_http_server]odjeljak.

nano /etc/supervisor/supervisord.conf

Sada ažurirajte konfiguraciju ovog odjeljka sljedećim.

[inet_http_server]
port=*:9001
username=your_username
password=your_password

Zamijenite your_usernamei your_passwordsa svojim željenim vjerodajnicama spremite svoje izmjene i ponovno pokrenite uslugu nadzora.

sudo systemctl restart supervisord.service

Ne zaboravite dopustiti TCPpristup portu 9001na vašem vatrozidu, a zatim pristup http://{server-ip}:9001iz vašeg preglednika. Na upit navedite svoje usernamei password. Sada možete kontrolirati svoje procese s weba.

Zaključak

Instalirali smo najnoviju verziju supervisorda, naučili kako ga konfigurirati za automatsko pokretanje sustava sa systemd-om i također pregledali osnovnu upotrebu supervisorctl. Za naprednije konfiguracije i slučajeve korištenja možete pogledati službenu dokumentaciju nadzora .


Instalirajte Plesk na CentOS 7

Instalirajte Plesk na CentOS 7

Korištenje drugog sustava? Plesk je vlasnička upravljačka ploča web hosta koja omogućuje korisnicima da administriraju svoje osobne i/ili klijentske web stranice, baze podataka

Postavite Cacti na Debian Jessie

Postavite Cacti na Debian Jessie

Uvod Cacti je alat otvorenog koda za praćenje i crtanje koji se u potpunosti temelji na RRD podacima. Putem Cactusa možete pratiti gotovo sve vrste uređaja

Instalirajte Lets Encrypt SSL na WordPress aplikaciju jednim klikom

Instalirajte Lets Encrypt SSL na WordPress aplikaciju jednim klikom

Uvod Lets Encrypt je usluga za izdavanje certifikata koja nudi besplatne TLS/SSL certifikate. Certbot pojednostavljuje proces instalacije,

Kako postaviti Tekkit Classic Server na Ubuntu 16.10

Kako postaviti Tekkit Classic Server na Ubuntu 16.10

Korištenje drugog sustava? Što je Tekkit Classic? Tekkit Classic je modpack za igru ​​koju svi znaju i vole; Minecraft. Sadrži neke od ver

Postavite iRedMail na Debian Wheezy

Postavite iRedMail na Debian Wheezy

Korištenje drugog sustava? Ovaj vodič će vam pokazati kako instalirati grupni softver iRedMail na novu instalaciju Debian Wheezyja. Trebali biste koristiti servis

Izrada Jekyll bloga na Ubuntu 16.04

Izrada Jekyll bloga na Ubuntu 16.04

Korištenje drugog sustava? Jekyll je izvrsna alternativa WordPressu za bloganje ili dijeljenje sadržaja. Ne zahtijeva nikakve baze podataka i vrlo je jednostavan i

Kako postaviti nenadzirane nadogradnje na Debianu 9 (protežu)

Kako postaviti nenadzirane nadogradnje na Debianu 9 (protežu)

Korištenje drugog sustava? Ako kupite Debian poslužitelj, uvijek biste trebali imati najnovije sigurnosne zakrpe i ažuriranja, bez obzira spavate li ili ne

Kako instalirati i konfigurirati PHP 7.0 ili PHP 7.1 na Ubuntu 16.04

Kako instalirati i konfigurirati PHP 7.0 ili PHP 7.1 na Ubuntu 16.04

PHP i povezani paketi najčešće su korištene komponente prilikom postavljanja web poslužitelja. U ovom članku ćemo naučiti kako postaviti PHP 7.0 ili PHP 7.1 o

Kako instalirati Squid proxy na CentOS

Kako instalirati Squid proxy na CentOS

Squid je popularan besplatni program za Linux koji vam omogućuje stvaranje web proxyja za prosljeđivanje. U ovom vodiču vidjet ćete kako instalirati Squid na CentOS da vas preokrene

Kako instalirati Lighttpd (LLMP Stack) na CentOS 6

Kako instalirati Lighttpd (LLMP Stack) na CentOS 6

Uvod Lighttpd je fork Apachea koji ima za cilj da bude puno manje intenzivan prema resursima. Lagan je, otuda mu i naziv, i prilično je jednostavan za korištenje. Instaliraj

Korištenje zaslona na Ubuntu 14.04

Korištenje zaslona na Ubuntu 14.04

Screen je aplikacija koja omogućuje višestruko korištenje terminalskih sesija unutar jednog prozora. To vam omogućuje da simulirate više prozora terminala gdje je ma

Postavite svoj vlastiti DNS poslužitelj na Debian/Ubuntu

Postavite svoj vlastiti DNS poslužitelj na Debian/Ubuntu

Ovaj vodič objašnjava kako postaviti DNS poslužitelj pomoću Bind9 na Debianu ili Ubuntu. U cijelom članku u skladu s tim zamijenite your-domain-name.com. Na th

Konfiguriranje statičkog umrežavanja i IPv6 na CentOS 7

Konfiguriranje statičkog umrežavanja i IPv6 na CentOS 7

VULTR je nedavno napravio promjene na svojoj strani i sada bi sve trebalo raditi dobro iz kutije s omogućenim NetworkManagerom. Želite li onemogućiti

Promjena Icinga2 za korištenje modela Master/Client na CentOS 6 ili CentOS 7

Promjena Icinga2 za korištenje modela Master/Client na CentOS 6 ili CentOS 7

Icinga2 je moćan sustav nadzora, a kada se koristi u modelu master-client, može zamijeniti potrebu za provjerama praćenja na temelju NRPE. Glavni klijent

Postavite Red5 Media Server na Ubuntu 16.04

Postavite Red5 Media Server na Ubuntu 16.04

Korištenje drugog sustava? Red5 je medijski poslužitelj otvorenog koda implementiran u Javi koji vam omogućuje pokretanje Flash višekorisničkih aplikacija kao što je live streamin

Prevedite i instalirajte Nginx s modulom PageSpeed ​​na Debian 8

Prevedite i instalirajte Nginx s modulom PageSpeed ​​na Debian 8

U ovom članku ćemo vidjeti kako sastaviti i instalirati Nginx mainline iz službenih izvora Nginxa s modulom PageSpeed, koji vam omogućuje da

Kako instalirati Vanilla Forum na Ubuntu 16.04

Kako instalirati Vanilla Forum na Ubuntu 16.04

Korištenje drugog sustava? Vanilla forum je aplikacija otvorenog koda napisana u PHP-u. Potpuno je prilagodljiv, jednostavan za korištenje i podržava eksterne

Kako instalirati Kanboard na Ubuntu 18.04 LTS

Kako instalirati Kanboard na Ubuntu 18.04 LTS

Korištenje drugog sustava? Uvod Kanboard je besplatni softver za upravljanje projektima otvorenog koda koji je dizajniran za olakšavanje i vizualizaciju

Kako instalirati Kanboard na Debian 9

Kako instalirati Kanboard na Debian 9

Korištenje drugog sustava? Uvod Kanboard je besplatni softver za upravljanje projektima otvorenog koda koji je dizajniran za olakšavanje i vizualizaciju

Kako instalirati Giteu na Debian 9

Kako instalirati Giteu na Debian 9

Korištenje drugog sustava? Gitea je alternativni sustav za kontrolu verzija otvorenog koda s vlastitim hostom koji pokreće Git. Gitea je napisana na Golangu i jest

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više