Memasang dan Mengkonfigurasi Penyelia di Ubuntu 16.04

Penyelia adalah sistem pelanggan / pelayan yang digunakan untuk mengawal sejumlah proses UNIX, lebih khusus proses yang berkaitan dengan projek atau pelanggan. Sebagai contoh, anda boleh menggunakan penyelia untuk menelurkan dan memantau sebilangan besar barisan pekerja dari aplikasi web anda.

Komponen sistem ini adalah:

  • supervisord: Bahagian pelayan sistem.
  • supervisorctl: Antara muka baris perintah yang digunakan untuk berinteraksi dengan pelayan.
  • Pelayan web: Pelayan web sederhana dan antara muka pengguna web dengan fungsi asas berbanding dengan supervisorctl .
  • Antaramuka XML-RPC: Pelayan HTTP yang sama yang digunakan oleh pelanggan web, menyediakan antara muka XML-RPC yang dapat digunakan untuk mengendalikan program penyelia.

Dalam tutorial ini kami akan memasang versi penyelia yang paling terkini, menunjukkan cara menelurkan dan mengurus program supervisorctl, dan mengkonfigurasi antara muka web untuk menguruskan program kami.

Pemasangan dan konfigurasi asas

Kami akan memasang penyelia melalui easy_install, ciri-ciri python setuptools.

Pertama, kemas kini senarai pakej tempatan anda dan kemudian pasang python setuptools.

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

Sekarang kita boleh memasang penyelia.

sudo easy_install supervisor

Setelah pemasangan selesai, kita harus menghasilkan fail konfigurasi kita. Buat folder bernama supervisordi dalam /etc.

sudo mkdir /etc/supervisor

Dan kemudian laksanakan perkara berikut.

echo_supervisord_conf >  /etc/supervisor/supervisord.conf

Sekiranya anda tidak log masuk dengan rootpengguna, anda mungkin mendapat Permission deniedralat (walaupun dengan sudo). Ini disebabkan pengalihan semula. Untuk mengatasi ini, log masuk sebagai root.

sudo su

Kemudian anda boleh menjalankan perintah itu lagi.

echo_supervisord_conf > /etc/supervisor/supervisord.conf

Anda kini boleh meninggalkan rootpengguna dengan exitarahan. The echo_supervisord_confarahan telah disediakan oleh pemasangan penyelia kami.

Konfigurasi asas

Buka /etc/supervisor/supervisord.conffail dan periksa kandungannya. Anda akan perhatikan bahawa fail konfigurasi ini mengikuti INIsintaks, dan dibahagikan dengan bahagian (ditunjukkan dengan tanda kurung seperti dalam [section-name]).

Untuk menambah program yang akan dikendalikan oleh penyelia, kita hanya perlu membuat bahagian yang sesuai [program]. Namun, untuk mengelakkan masalah dengan fail konfigurasi utama setiap kali kita perlu menambahkan (atau mengubah) program, kita akan menggunakan [include]bahagian tersebut. Cari bahagian ini, tanggalkan dan kemudian edit sehingga kelihatan seperti berikut.

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

Sekarang untuk setiap program yang ingin kita tambahkan, kita akan membuat .inifail di dalam /etc/supervisor/conf.d/direktori. Mari buat folder ini.

sudo mkdir /etc/supervisor/conf.d

Memulakan pelayan penyelia

Seperti yang dinyatakan sebelum ini, penyelia terdiri daripada pelayan dan klien yang menghubungkannya. Untuk dapat mengurus dan mengawal program, kita perlu memulakan pelayan. Untuk melakukannya, kami akan mendaftarkan pelayan penyelia systemdagar pelayan dapat dimulakan pada permulaan sistem.

Untuk melakukannya, buat fail yang dipanggil supervisord.servicedalam /etc/systemd/systemdirektori.

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

Tambahkan kandungan berikut ke fail.

[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

Aktifkan perkhidmatan penyelia.

sudo systemctl start supervisord.service

Selagi fail perkhidmatan berada di dalam /etc/systemd/systemdirektori, ia akan dimulakan secara automatik pada permulaan sistem.

Anda boleh menyemak status perkhidmatan.

systemctl status supervisord.service

Anda juga boleh melihat lognya.

sudo journalctl -u supervisord.service

Menambah program

Program yang dikendalikan oleh penyelia diberikan oleh [program]bahagian yang berbeza dalam konfigurasi. Untuk setiap program yang ingin kami kelola, kami akan membuat file konfigurasi yang berdiri sendiri yang memaklumkan jalan yang dapat dijalankan perintah, apa-apa pemboleh ubah persekitaran, bagaimana melakukan sekiranya terjadi penutupan.

Pertama, mari buat skrip mudah yang mencatatkan cap waktu. Buat fail yang dipanggil hello_supervisor.sh(di mana sahaja anda mahu, kami akan merujuk jalan lengkap skrip ini).

touch hello_supervisor.sh

Sekarang, masukkan isi berikut ke dalamnya

#!/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

Sekarang jadikan ia boleh dilaksanakan

chmod +x hello_supervisor.sh

Secara praktiknya skrip ini tidak berguna lagi. Namun, kita dapat menggunakannya untuk menunjukkan kekuatan penyelia. Buat fail konfigurasi yang sesuai dengan menjalankan perkara berikut.

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

Sekarang masukkan kandungan berikut ke dalam fail ini.

[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

Catatan: Pastikan anda mengganti USERdengan nama pengguna anda.

Kami akan mengkaji konfigurasi ini langkah demi langkah.

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

Pertama, konfigurasi dimulakan dengan menentukan program nama hello_supervisor . Ia juga memberi tahu jalan penuh yang dapat dijalankan untuk dijalankan.

autostart=true

Garis ini menyatakan bahawa program ini harus dimulakan secara automatik semasa penyelia dimulakan.

autorestart=true

Sekiranya program berhenti, atas sebab apa pun, baris ini memberitahu penyelia untuk memulakan semula proses secara automatik.

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

Garis-garis ini menentukan lokasi log untuk stderrdan stdoutmasing-masing.

Menguruskan program

Setelah kita memasang dan mengkonfigurasi penyelia, kita dapat menguruskan proses kita.

Setelah menambahkan program baru, kita harus menjalankan dua perintah berikut, untuk memberi tahu pelayan untuk membaca kembali file konfigurasi dan untuk menerapkan perubahan.

sudo supervisorctl reread
sudo supervisorctl update

Sekarang jalankan supervisorctlklien.

sudo supervisorctl

Anda akan disambut dengan senarai proses yang didaftarkan. Anda akan melihat proses yang dipanggil hello_supervisordengan RUNNINGstatus.

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

Taipkan helpsenarai arahan yang tersedia.

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

Singkatnya, kita dapat start, stopdan restartprogram dengan menyampaikan nama program sebagai argumen kepada perintah masing-masing.

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> 

Kita juga dapat melihat output program dengan tailperintah.

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

Untuk stderroutputnya, anda juga boleh menggunakan 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!

Dengan menggunakan statusperintah, anda dapat melihat status semua program yang didaftarkan.

Setelah selesai, anda boleh berhenti.

supervisor> quit

Pelanggan pelayan laman web

Untuk membenarkan akses ke pelayan web penyelia, buka fail konfigurasi penyelia dan cari [inet_http_server]bahagian tersebut.

nano /etc/supervisor/supervisord.conf

Sekarang kemas kini konfigurasi bahagian ini dengan yang berikut.

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

Ganti your_usernamedan your_passworddengan kelayakan yang anda inginkan, simpan pengubahsuaian anda dan mulakan semula perkhidmatan penyelia.

sudo systemctl restart supervisord.service

Ingatlah untuk membenarkan TCPakses ke port 9001di firewall anda dan kemudian akses http://{server-ip}:9001dari penyemak imbas anda. Apabila ditanya, berikan usernamedan password. Anda kini dapat mengawal proses anda dari web.

Kesimpulannya

Kami telah memasang versi supervisord yang paling terkini, belajar bagaimana mengkonfigurasinya untuk memulakan sistem secara automatik dengan systemd dan juga mengkaji penggunaan asas supervisorctl. Untuk kes konfigurasi dan penggunaan yang lebih maju, anda boleh merujuk kepada dokumentasi penyelia rasmi .



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut