Rumah >pembangunan bahagian belakang >Tutorial Python >Membawa anda memahami Penyelia alat pengurusan proses Python
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.
[Cadangan berkaitan: Tutorial video Python3 ]
<.>2. Pemasangan
Selepas pemasangan selesai, dalam Python centos,supervisor==4.2.4
Akan 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 supervisord3. Cipta fail konfigurasi
Jika ralat dilaporkan -bash: /etc/supervisord.conf: Kebenaran ditolak, anda perlu bertukar kepada pengguna root. mkdir supervisord
echo_supervisord_conf > supervisord/supervisord.confTugas 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.dTukar bahagian terakhir kepada
vim supervisord/supervisord.conf
4 >1 .Mulakan penyelia
[inclue] # 因为我这里是放在root用户目录下,也可以放其它目录 files=/root/supervisord/conf.d/*.conf
supervisord -c supervisord/supervisord.conf2 Tulis skrip Shell yang ringkas
supervisord
supervisord -vMudah dijalankan. ,
Keluar
vim supervisord/test.sh3 Cipta fail konfigurasi proses anak
#!/bin/bash while : do echo `date '+%Y-%m-%d %H:%m:%S'` 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 diperlukancommand=sh /root/supervisord/test.sh
Arus struktur direktori fail adalah seperti ini: stdout_logfile=/tmp/supervisor.stdout.log
4 Baca semula konfigurasi dan kemas kini proses anakprogram:test
kami telah diaktifkan, anda boleh melihatnya melalui . Fail konfigurasi sub-proses telah ditambah dan perlu dimuat semula: test
, 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
supervisord
Keputusan: ps -ef | grep supervisord.conf
test RUNNING pid 30278, uptime 1:29:41supervisord
cd supervisord
supervisorctl rereadsudah berjalan di latar belakang sebagai daemon Mari kita bunuhnya:
supervisorctl statusLaksanakan
sekali lagi, anda akan mendapati bahawa status serta-merta berubah daripada , tidak Selepas beberapa ketika ia menjadi
, maka peranansudah 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.
test
5 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 status
starting
running
Nyah ulasansupervisord
Mulakan semula penyelia
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 ditentukansupervisorctl rereadMulakan semua sub-proses
supervisorctl updateMulakan sub-proses yang ditentukan
supervisorctl reloadMulakan semula semua proses anak
supervisorctl statusMulakan semula proses anak yang ditentukan
supervisorctl status <name>Hentikan semua proses anak
supervisorctl start allHentikan proses anak yang ditentukan
supervisorctl start <name>Tambahkan proses anak pada kumpulan proses
supervisorctl restart allUntuk 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!