Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membawa anda memahami Penyelia alat pengurusan proses Python

Membawa anda memahami Penyelia alat pengurusan proses Python

WBOY
WBOYke hadapan
2022-07-28 15:34:462386semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Python ialah sistem pengurusan proses yang dibangunkan dalam Python, yang membolehkan pengguna memantau dan mengawal proses pada Linux Ia boleh menukar baris arahan biasa Proses menjadi a proses daemon latar belakang dan boleh dimulakan semula secara automatik apabila ia keluar secara tidak normal. Mari kita lihat.

Membawa anda memahami Penyelia alat pengurusan proses Python

[Cadangan berkaitan: Tutorial video Python3 ]

1 Supervisor ialah sistem pengurusan proses yang dibangunkan dalam Python yang membolehkan pengguna memantau dan mengawal proses di Linux Ia boleh menukar proses baris arahan biasa menjadi proses daemon latar belakang dan secara automatik dimulakan semula apabila ia keluar secara tidak normal

<.>2. Pemasangan

Penyelia menyokong Linux dan Mac, tetapi tidak menyokong WindowsSistem dalam artikel ini ialah:


Selepas pemasangan selesai, dalam Python centos,supervisor==4.2.4Akan ada beberapa fail seperti ini di bawah.

pip3 install supervisor

Nota: Memandangkan direktori bin python mempunyai pembolehubah persekitaran ditambah, fail ini boleh dilaksanakan secara langsung. bin目录

ls /usr/local/Python38/bin

echo_supervisord_conf
supervisorctl
supervisord
3. Cipta fail konfigurasi

1. Mula-mula buat direktori untuk menyimpan fail konfigurasi: .

Jika ralat dilaporkan -bash: /etc/supervisord.conf: Kebenaran ditolak, anda perlu bertukar kepada pengguna root. mkdir supervisord

2. Cipta laluan fail konfigurasi proses anak
echo_supervisord_conf > supervisord/supervisord.conf

Tugas kami nanti, kami mahu menggunakannya sebagai proses daemon, semuanya memerlukan fail konfigurasi, kami masukkan fail konfigurasi ini direktori conf.d di bawah.

3. Ubah suai fail konfigurasi
mkdir -p supervisor/conf.d

Tukar bahagian terakhir kepada

vim supervisord/supervisord.conf

4 >1 .Mulakan penyelia

[inclue]
# 因为我这里是放在root用户目录下,也可以放其它目录
files=/root/supervisord/conf.d/*.conf

Ini akan bermula Kami kemudiannya boleh menyerahkan tugas kami kepadanya untuk mengawalnya, ia akan dimulakan semula secara automatik.

Lihat versi

supervisord -c supervisord/supervisord.conf
2 Tulis skrip Shell yang ringkas

supervisord

Kandungan adalah seperti berikut

supervisord -v
Mudah dijalankan. ,

Keluar

vim supervisord/test.sh
3 Cipta fail konfigurasi proses anak

#!/bin/bash
while : 
do
    echo `date &#39;+%Y-%m-%d %H:%m:%S&#39;`
    sleep 1
done

dengan kandungan berikut: Ctrl C

Malah, anda hanya perlu mengkonfigurasi 3 parameter, dan anda tidak perlu risau tentang yang lain:

vim supervisor/conf.d/test.conf

test.conf: Perintah permulaan sub-proses kami;

[program:test]
command=sh /root/supervisord/test.sh
priority=999                              ; 相对启动优先级,数值越小越优先,默认为999
autostart=true                            ; 在supervisor启动时自动启动,默认为true
autorestart=true                          ; 在意外退出时重新启动,默认为true
startsecs=10                              ; 子进程启动多少秒后状态为running则认为启动成功,默认为1
startretries=3                            ; 尝试启动的最大次数,默认为3
exitcodes=0,2                             ; 进程的预期退出代码列表,默认为0
stopsignal=QUIT                           ; 终止进程的信号,默认为TERM
stopwaitsecs=10                           ; 在SIGKILL之前等待的最大秒数,默认为10
user=root                                 ; 在某用户下设置uid来启动程序,默认不切换用户
redirect_stderr=true                      ; 是否重定向stdout和stderr,默认为false
stdout_logfile=/tmp/supervisor.stdout.log  ; stdout的输出文件,默认为AUTO
stdout_logfile_maxbytes=50MB              ; stdout最大文件大小,默认为50MB
stdout_logfile_backups=10                 ; stdout文件备份数,设为0则不备份,默认为10

: Nama proses ialah

, jika Pada hari mana proses ingin berhenti dan bermula, dsb., nama proses diperlukan
  • command=sh /root/supervisord/test.shArus struktur direktori fail adalah seperti ini:
  • stdout_logfile=/tmp/supervisor.stdout.log4 Baca semula konfigurasi dan kemas kini proses anak
  • Oleh kerana program:test kami telah diaktifkan, anda boleh melihatnya melalui . Fail konfigurasi sub-proses telah ditambah dan perlu dimuat semula: test
  • Mula-mula masukkan direktori
:

, jika tidak akan ada masalah semasa melaksanakan arahan berikut.

yum install tree
tree supervisord

supervisord
├── conf.d
│   └── test.conf
├── supervisord.conf
└── test.sh

Semak status proses sekali lagi

supervisordKeputusan: ps -ef | grep supervisord.conf

test RUNNING pid 30278, uptime 1:29:41supervisordcd supervisord

Proses bernama
supervisorctl reread
sudah berjalan di latar belakang sebagai daemon Mari kita bunuhnya:

supervisorctl status
Laksanakan

sekali lagi, anda akan mendapati bahawa status serta-merta berubah daripada , tidak Selepas beberapa ketika ia menjadi

, maka peranan
sudah jelas, ia secara automatik boleh membantu kami memantau tugasan secara automatik.

Nota: Untuk arahan yang berkaitan dengan menambah, memadam, memulakan dan menghentikan proses anak, lihat lampiran.

test5 antara muka web

kill 30278

Antara muka web tidak begitu berguna, iaitu jika anda ingin memulakan atau menjeda proses, anda tidak perlu menaip arahan. supervisorctl statusstartingrunningNyah ulasansupervisord

Mulakan semula penyelia

Akses penyemak imbas: linux_ip:9001.

Lampiran: supervisorctl command common >

Tambah fail konfigurasi, muat semula

vim supervisord.conf

Tukar fail konfigurasi, muat semula

[inet_http_server]
port=*:9001                ; 此处改为*便于调试

Mulakan semula penyelia

supervisorctl reload

Lihat status semua proses

Lihat status proses yang ditentukan

supervisorctl reread
Mulakan semua sub-proses

supervisorctl update
Mulakan sub-proses yang ditentukan

supervisorctl reload
Mulakan semula semua proses anak

supervisorctl status
Mulakan semula proses anak yang ditentukan

supervisorctl status <name>
Hentikan semua proses anak

supervisorctl start all
Hentikan proses anak yang ditentukan

supervisorctl start <name>
Tambahkan proses anak pada kumpulan proses

supervisorctl restart all
Untuk mengalih keluar proses anak daripada kumpulan proses, anda perlu menghentikannya dahulu. Nota: Selepas dialih keluar, anda perlu menggunakan baca semula dan kemas kini untuk menjalankan semula proses

supervisorctl restart <name>
[Cadangan berkaitan:

Tutorial video Python3

]
supervisorctl stop all

Atas ialah kandungan terperinci Membawa anda memahami Penyelia alat pengurusan proses Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam