ນີ້ແມ່ນຜູ້ຄວບຄຸມຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ຜູ້ຄຸມງານ - ເອກະສານຜູ້ຄຸມງານ
Supervisor ແມ່ນລະບົບລູກຄ້າ / ເຄື່ອງແມ່ຂ່າຍທີ່ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດຕິດຕາມແລະຄວບຄຸມຕົວເລກ
ຂອງຂະບວນການໃນລະບົບປະຕິບັດການທີ່ຄ້າຍຄືກັບ UNIX.
ມັນແບ່ງປັນບາງເປົ້າຫມາຍດຽວກັນຂອງບັນດາໂຄງການເຊັ່ນ: ເປີດຕົວ, daemontools, ແລະ runit. ບໍ່ມັກ
ບາງໂຄງການເຫຼົ່ານີ້, ມັນບໍ່ໄດ້ຫມາຍຄວາມວ່າຈະດໍາເນີນການເປັນການທົດແທນ ໃນມັນ ເປັນ "ລະຫັດຂະບວນການ
1. ແທນທີ່ຈະ, ມັນຫມາຍຄວາມວ່າຈະຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມຂະບວນການທີ່ກ່ຽວຂ້ອງກັບໂຄງການຫຼື a
ລູກຄ້າ, ແລະຫມາຍຄວາມວ່າຈະເລີ່ມຕົ້ນຄືກັບໂຄງການອື່ນໆໃນເວລາ boot.
ເກີດຂື້ນ ເອກະສານອ້າງອີງ
ການນໍາສະເຫນີ
ພາບລວມ
Supervisor ແມ່ນລະບົບລູກຄ້າ / ເຄື່ອງແມ່ຂ່າຍທີ່ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດຄວບຄຸມຈໍານວນຂອງ
ຂະບວນການໃນລະບົບປະຕິບັດການທີ່ຄ້າຍຄືກັບ UNIX. ມັນໄດ້ຮັບການດົນໃຈຈາກສິ່ງຕໍ່ໄປນີ້:
ສະດວກສະບາຍ
ມັນມັກຈະບໍ່ສະດວກທີ່ຈະຕ້ອງຂຽນ rc.d scripts ສໍາລັບທຸກໆຂະບວນການດຽວ
ຕົວຢ່າງ. rc.d scripts ແມ່ນຮູບແບບຂອງຂະບວນການທົ່ວໄປຕ່ໍາສຸດທີ່ດີ
initialization/autostart/management, ແຕ່ພວກເຂົາສາມາດເຈັບປວດໃນການຂຽນແລະຮັກສາ.
ນອກຈາກນັ້ນ, rc.d scripts ບໍ່ສາມາດ restart ອັດຕະໂນມັດຂະບວນການ crashed ແລະຈໍານວນຫຼາຍ
ໂປລແກລມບໍ່ restart ຕົວມັນເອງຢ່າງຖືກຕ້ອງເມື່ອເກີດອຸປະຕິເຫດ. ຜູ້ຄຸມງານເລີ່ມຂະບວນການ
ເປັນຂະບວນການຍ່ອຍຂອງມັນ, ແລະສາມາດຖືກຕັ້ງຄ່າເພື່ອ restart ພວກມັນໂດຍອັດຕະໂນມັດເມື່ອເກີດອຸປະຕິເຫດ.
ມັນຍັງສາມາດຖືກຕັ້ງຄ່າໂດຍອັດຕະໂນມັດເພື່ອເລີ່ມຕົ້ນຂະບວນການຕ່າງໆຕາມການຮຽກຮ້ອງຂອງຕົນເອງ.
ຄວາມຖືກຕ້ອງ
ມັນມັກຈະເປັນການຍາກທີ່ຈະໄດ້ຮັບສະຖານະຂຶ້ນ/ລົງທີ່ຖືກຕ້ອງກ່ຽວກັບຂະບວນການໃນ UNIX. Pidfiles
ມັກຕົວະ. Supervisord ເລີ່ມຕົ້ນຂະບວນການເປັນຂະບວນການຍ່ອຍ, ສະນັ້ນມັນສະເຫມີຮູ້ຄວາມຈິງ
ສະຖານະຂຶ້ນ/ລົງຂອງລູກຂອງມັນ ແລະສາມາດສອບຖາມຂໍ້ມູນນີ້ໄດ້ຢ່າງສະດວກ.
ຄະນະຜູ້ແທນ
ຜູ້ໃຊ້ທີ່ຕ້ອງການຄວບຄຸມສະຖານະຂະບວນການມັກຈະຕ້ອງການພຽງແຕ່ເຮັດແນວນັ້ນ. ພວກເຂົາເຈົ້າບໍ່ຕ້ອງການຫຼື
ຕ້ອງການການເຂົ້າເຖິງເປືອກຫຸ້ມນອກຢ່າງເຕັມທີ່ກັບເຄື່ອງທີ່ຂະບວນການກໍາລັງແລ່ນ.
ຂະບວນການທີ່ຟັງຢູ່ໃນພອດ TCP "ຕ່ໍາ" ມັກຈະຕ້ອງໄດ້ຮັບການເລີ່ມຕົ້ນແລະເລີ່ມຕົ້ນໃຫມ່ເປັນ
ຜູ້ໃຊ້ຮາກ (ເປັນຄວາມຜິດພາດຂອງ UNIX). ປົກກະຕິແລ້ວມັນເປັນກໍລະນີທີ່ມັນດີເລີດທີ່ຈະອະນຸຍາດໃຫ້
"ປົກກະຕິ" ປະຊາຊົນທີ່ຈະຢຸດຫຼື restart ຂະບວນການດັ່ງກ່າວ, ແຕ່ສະຫນອງໃຫ້ເຂົາເຈົ້າມີ shell ເຂົ້າເຖິງ
ມັກຈະເປັນໄປບໍ່ໄດ້, ແລະການໃຫ້ການເຂົ້າເຖິງຮາກຫຼືການເຂົ້າເຖິງ sudo ແມ່ນເລື້ອຍໆ
ເປັນໄປບໍ່ໄດ້. ມັນຍັງ (ຖືກຕ້ອງ) ຍາກທີ່ຈະອະທິບາຍໃຫ້ເຂົາເຈົ້າວ່າເປັນຫຍັງບັນຫານີ້ມີຢູ່.
ຖ້າຜູ້ຄວບຄຸມເລີ່ມຕົ້ນເປັນຮາກ, ມັນເປັນໄປໄດ້ທີ່ຈະອະນຸຍາດໃຫ້ຜູ້ໃຊ້ "ປົກກະຕິ" ຄວບຄຸມ
ຂະບວນການດັ່ງກ່າວໂດຍບໍ່ຈໍາເປັນຕ້ອງອະທິບາຍ intricacies ຂອງບັນຫາໃຫ້ເຂົາເຈົ້າ.
Supervisorctl ອະນຸຍາດໃຫ້ມີຮູບແບບຈໍາກັດຫຼາຍຂອງການເຂົ້າເຖິງເຄື່ອງຈັກ, ເປັນສິ່ງຈໍາເປັນທີ່ອະນຸຍາດໃຫ້
ຜູ້ໃຊ້ເພື່ອເບິ່ງສະຖານະພາບຂະບວນການແລະການຄວບຄຸມຂະບວນການຍ່ອຍທີ່ຄວບຄຸມໂດຍການ emitting
"stop", "start", ແລະ "restart" ຄໍາສັ່ງຈາກ shell ຫຼື web UI ງ່າຍໆ.
ກຸ່ມຂະບວນການ
ຂະບວນການມັກຈະຕ້ອງໄດ້ຮັບການເລີ່ມຕົ້ນແລະຢຸດຢູ່ໃນກຸ່ມ, ບາງຄັ້ງກໍ່ຢູ່ໃນ "ບູລິມະສິດ
ຄໍາສັ່ງ" ມັນມັກຈະເປັນການຍາກທີ່ຈະອະທິບາຍໃຫ້ປະຊາຊົນວິທີການເຮັດແນວນີ້
ທ່ານຈະກໍານົດບູລິມະສິດຂອງຂະບວນການ, ແລະອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເພື່ອປ່ອຍຄໍາສັ່ງໂດຍຜ່ານການ
supervisorctl client ເຊັ່ນ "start all", ແລະ "restart all", ເຊິ່ງເລີ່ມຕົ້ນພວກມັນຢູ່ໃນ
ລຳດັບຄວາມສຳຄັນທີ່ໄດ້ກຳນົດໄວ້ລ່ວງໜ້າ. ນອກຈາກນັ້ນ, ຂະບວນການສາມາດຖືກຈັດເປັນກຸ່ມ "ຂະບວນການ
ກຸ່ມ" ແລະຊຸດຂະບວນການທີ່ກ່ຽວຂ້ອງກັບເຫດຜົນສາມາດຖືກຢຸດແລະເລີ່ມຕົ້ນເປັນຫນ່ວຍງານ.
ຄຸນລັກສະນະ
ງ່າຍດາຍ
Supervisor ຖືກຕັ້ງຄ່າໂດຍຜ່ານໄຟລ໌ config ແບບ INI ແບບງ່າຍດາຍທີ່ງ່າຍຕໍ່ການຮຽນຮູ້.
ມັນສະຫນອງທາງເລືອກຫຼາຍຕໍ່ຂະບວນການທີ່ເຮັດໃຫ້ຊີວິດຂອງທ່ານງ່າຍຂຶ້ນເຊັ່ນການເລີ່ມຕົ້ນໃຫມ່ລົ້ມເຫລວ
ຂະບວນການແລະການຫມູນວຽນບັນທຶກອັດຕະໂນມັດ.
ເປັນໃຈກາງ
Supervisor ໃຫ້ເຈົ້າບ່ອນດຽວເພື່ອເລີ່ມຕົ້ນ, ຢຸດ, ແລະຕິດຕາມຂະບວນການຂອງເຈົ້າ.
ຂະບວນການສາມາດຄວບຄຸມເປັນສ່ວນບຸກຄົນຫຼືເປັນກຸ່ມ. ທ່ານສາມາດ configure Supervisor ກັບ
ໃຫ້ເສັ້ນຄໍາສັ່ງໃນທ້ອງຖິ່ນ ຫຼືຫ່າງໄກສອກຫຼີກ ແລະສ່ວນຕິດຕໍ່ເວັບ.
ປະສິດທິພາບ
Supervisor ເລີ່ມຕົ້ນຂະບວນການຍ່ອຍຂອງມັນຜ່ານ fork/exec ແລະຂະບວນການຍ່ອຍບໍ່ daemonize. ໄດ້
ລະບົບປະຕິບັດການສັນຍານ Supervisor ໃນທັນທີໃນເວລາທີ່ຂະບວນການຢຸດເຊົາ, ບໍ່ເຫມືອນກັບບາງ
ວິທີແກ້ໄຂທີ່ອີງໃສ່ໄຟລ໌ PID ທີ່ມີບັນຫາ ແລະການສຳຫຼວດແຕ່ລະໄລຍະເພື່ອປິດເປີດຄືນໃໝ່ບໍ່ສຳເລັດ
ຂະບວນການ.
ຂະຫຍາຍໄດ້
ຜູ້ຄຸມງານມີໂປຣໂຕຄໍການແຈ້ງເຕືອນເຫດການງ່າຍໆທີ່ບັນດາໂຄງການຂຽນໄວ້ໃນອັນໃດກໍໄດ້
ພາສາສາມາດໃຊ້ເພື່ອຕິດຕາມມັນ, ແລະການໂຕ້ຕອບ XML-RPC ສໍາລັບການຄວບຄຸມ. ມັນຍັງຖືກສ້າງຂື້ນ
ດ້ວຍຈຸດຂະຫຍາຍທີ່ສາມາດນຳໃຊ້ໄດ້ໂດຍນັກພັດທະນາ Python.
ເຂົ້າກັນໄດ້
Supervisor ເຮັດວຽກພຽງແຕ່ກ່ຽວກັບທຸກສິ່ງທຸກຢ່າງຍົກເວັ້ນສໍາລັບ Windows. ມັນໄດ້ຖືກທົດສອບແລະ
ຮອງຮັບໃນ Linux, Mac OS X, Solaris, ແລະ FreeBSD. ມັນຖືກຂຽນໄວ້ໃນ Python,
ດັ່ງນັ້ນການຕິດຕັ້ງບໍ່ຈໍາເປັນຕ້ອງມີ C compiler.
ການພິສູດ
ໃນຂະນະທີ່ Supervisor ຖືກພັດທະນາຢ່າງຫ້າວຫັນໃນມື້ນີ້, ມັນບໍ່ແມ່ນຊອບແວໃຫມ່. ຜູ້ຄຸມງານ
ໄດ້ປະມານສໍາລັບປີແລະຖືກນໍາໃຊ້ແລ້ວໃນເຄື່ອງແມ່ຂ່າຍຈໍານວນຫຼາຍ.
Supervisor ອົງປະກອບ
ຜູ້ຄຸມງານ
ຊິ້ນສ່ວນເຊີບເວີຂອງຜູ້ເບິ່ງແຍງແມ່ນມີຊື່ ຜູ້ຄຸມງານ. ມັນເປັນຄວາມຮັບຜິດຊອບສໍາລັບການເລີ່ມຕົ້ນ
ໂຄງການເດັກຢູ່ໃນການຮຽກຮ້ອງຂອງຕົນເອງ, ການຕອບສະຫນອງກັບຄໍາສັ່ງຈາກລູກຄ້າ, restarting
crashed ຫຼືອອກຈາກຂະບວນການຍ່ອຍ, ບັນທຶກຂະບວນການຍ່ອຍຂອງມັນ stdout ແລະ stderr ຜົນຜະລິດ, ແລະ
ການສ້າງແລະຈັດການ "ເຫດການ" ທີ່ສອດຄ້ອງກັນກັບຈຸດໃນຂະບວນການຍ່ອຍຕະຫຼອດຊີວິດ.
ຂະບວນການເຊີຟເວີໃຊ້ໄຟລ໌ການຕັ້ງຄ່າ. ປົກກະຕິແລ້ວນີ້ແມ່ນຕັ້ງຢູ່ໃນ
/etc/supervisord.conf. ໄຟລ໌ການຕັ້ງຄ່ານີ້ແມ່ນໄຟລ໌ການຕັ້ງຄ່າຮູບແບບ "Windows-INI".
ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະຮັກສາໄຟລ໌ນີ້ໃຫ້ປອດໄພໂດຍຜ່ານການອະນຸຍາດລະບົບໄຟລ໌ທີ່ເຫມາະສົມເພາະວ່າມັນ
ອາດມີຊື່ຜູ້ໃຊ້ ແລະລະຫັດຜ່ານທີ່ບໍ່ໄດ້ເຂົ້າລະຫັດໄວ້.
supervisorctl
ຊິ້ນສ່ວນລູກຂ່າຍເສັ້ນຄໍາສັ່ງຂອງຜູ້ຄຸມງານມີຊື່ supervisorctl. ມັນສະ ໜອງ ກ
ການໂຕ້ຕອບທີ່ຄ້າຍຄື shell ກັບຄຸນນະສົມບັດສະຫນອງໃຫ້ໂດຍ ຜູ້ຄຸມງານທີ່ຢູ່ ຈາກ supervisorctl, ເປັນ
ຜູ້ໃຊ້ສາມາດເຊື່ອມຕໍ່ກັບທີ່ແຕກຕ່າງກັນ ຜູ້ຄຸມງານ ຂະບວນການ, ໄດ້ຮັບສະຖານະພາບກ່ຽວກັບຂະບວນການຍ່ອຍ
ຄວບຄຸມໂດຍ, ຢຸດແລະເລີ່ມຕົ້ນຂະບວນການຍ່ອຍຂອງ, ແລະໄດ້ຮັບບັນຊີລາຍຊື່ຂອງຂະບວນການແລ່ນຂອງ a
ຜູ້ຄຸມງານ.
ລູກຄ້າແຖວຄໍາສັ່ງສົນທະນາກັບເຊີບເວີໃນທົ່ວຊັອກເກັດໂດເມນ UNIX ຫຼືອິນເຕີເນັດ
(TCP) ເຕົ້າຮັບ. ເຄື່ອງແມ່ຂ່າຍສາມາດຢືນຢັນວ່າຜູ້ໃຊ້ຂອງລູກຄ້າຄວນນໍາສະເຫນີ
ການກວດສອບຄວາມຖືກຕ້ອງກ່ອນທີ່ມັນຈະອະນຸຍາດໃຫ້ລາວປະຕິບັດຄໍາສັ່ງ. ລູກຄ້າ
ໂດຍປົກກະຕິຂະບວນການໃຊ້ໄຟລ໌ການຕັ້ງຄ່າດຽວກັນກັບເຄື່ອງແມ່ຂ່າຍແຕ່ການຕັ້ງຄ່າໃດໆ
ໄຟລ໌ທີ່ມີ a [ຜູ້ຄຸມງານ] ພາກສ່ວນໃນມັນຈະເຮັດວຽກ.
ເຊີບເວີເວັບ
A (sparse) ການໂຕ້ຕອບຜູ້ໃຊ້ເວັບໄຊຕ໌ທີ່ມີຫນ້າທີ່ປຽບທຽບກັບ supervisorctl ອາດຈະເປັນ
ເຂົ້າເຖິງຜ່ານຕົວທ່ອງເວັບຖ້າທ່ານເລີ່ມຕົ້ນ ຜູ້ຄຸມງານ ຕໍ່ກັບຊ່ອງສຽບອິນເຕີເນັດ. ຢ້ຽມຢາມ
URL ເຊີບເວີ (ເຊັ່ນ http://localhost: 9001 /) ເພື່ອເບິ່ງແລະຄວບຄຸມສະຖານະພາບຂະບວນການໂດຍຜ່ານການ
ການໂຕ້ຕອບຂອງເວັບໄຊຕ໌ຫຼັງຈາກເປີດໃຊ້ໄຟລ໌ການຕັ້ງຄ່າ [inet_http_server] ສ່ວນ.
ການໂຕ້ຕອບ XML-RPC
ເຊີບເວີ HTTP ດຽວກັນທີ່ໃຫ້ບໍລິການ UI ເວັບໃຫ້ບໍລິການໃນການໂຕ້ຕອບ XML-RPC ທີ່ສາມາດເປັນ
ໃຊ້ເພື່ອສອບຖາມ ແລະຄວບຄຸມຜູ້ຄຸມງານ ແລະໂຄງການທີ່ມັນແລ່ນ. ເບິ່ງ xml_rpc.
ເວທີ ຄວາມຕ້ອງການ
Supervisor ໄດ້ຮັບການທົດສອບແລະເປັນທີ່ຮູ້ຈັກເພື່ອດໍາເນີນການໃນ Linux (Ubuntu 9.10), Mac OS X
(10.4/10.5/10.6), ແລະ Solaris (10 ສໍາລັບ Intel) ແລະ FreeBSD 6.1. ມັນຄົງຈະເຮັດວຽກໄດ້ດີ
ລະບົບ UNIX ສ່ວນໃຫຍ່.
ຜູ້ຄຸມງານຈະ ບໍ່ ແລ່ນຢູ່ໃນທຸກລຸ້ນຂອງ Windows.
Supervisor ເປັນທີ່ຮູ້ຈັກທີ່ຈະເຮັດວຽກກັບ Python 2.4 ຫຼືຫຼັງຈາກນັ້ນແຕ່ຈະບໍ່ເຮັດວຽກພາຍໃຕ້ສະບັບໃດ
ຂອງ Python 3.
ເຮັດວຽກ Supervisor
ພາກນີ້ອ້າງເຖິງ ກ BINDIR ໃນເວລາທີ່ອະທິບາຍວິທີການດໍາເນີນການ ຜູ້ຄຸມງານ ແລະ
supervisorctl ຄໍາສັ່ງ. ນີ້ແມ່ນລາຍຊື່ "bindir" ທີ່ການຕິດຕັ້ງ Python ຂອງທ່ານມີ
ໄດ້ຮັບການຕັ້ງຄ່າກັບ. ຕົວຢ່າງ, ສໍາລັບການຕິດຕັ້ງ Python ທີ່ຕິດຕັ້ງຜ່ານ
/ configure --prefix=/usr/local/py; ເຮັດໃຫ້; ເຮັດໃຫ້ ການຕິດຕັ້ງ, BINDIR ຈະ /usr/local/py/bin.
ນາຍແປພາສາ Python ໃນເວທີທີ່ແຕກຕ່າງກັນໃຊ້ທີ່ແຕກຕ່າງກັນ BINDIR. ເບິ່ງຜົນຜະລິດຂອງ
setup.py ການຕິດຕັ້ງ ຖ້າເຈົ້າບໍ່ສາມາດຄິດອອກໄດ້ວ່າຂອງເຈົ້າຢູ່ໃສ.
ເພີ່ມຕື່ມ a ໂຄງການ
ກ່ອນທີ່ຈະ ຜູ້ຄຸມງານ ຈະເຮັດຫຍັງທີ່ເປັນປະໂຫຍດສໍາລັບທ່ານ, ທ່ານຈະຕ້ອງເພີ່ມຢ່າງຫນ້ອຍຫນຶ່ງອັນ
ໂຄງການ ພາກສ່ວນການຕັ້ງຄ່າຂອງຕົນ. ໄດ້ ໂຄງການ ພາກສ່ວນຈະກໍານົດໂຄງການທີ່ເປັນ
ດໍາເນີນການແລະຈັດການໃນເວລາທີ່ທ່ານຮຽກຮ້ອງ ຜູ້ຄຸມງານ ຄໍາສັ່ງ. ເພື່ອເພີ່ມໂຄງການ, ທ່ານຈະຕ້ອງ
ແກ້ໄຂ supervisord.conf ຍື່ນ.
ຫນຶ່ງໃນໂຄງການທີ່ງ່າຍດາຍທີ່ສຸດທີ່ຈະດໍາເນີນການແມ່ນ UNIX cat ໂຄງການ. ກ ໂຄງການ ສ່ວນ
ທີ່ຈະດໍາເນີນການ cat ໃນເວລາທີ່ ຜູ້ຄຸມງານ ຂະບວນການເລີ່ມຕົ້ນຂຶ້ນແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້.
[ໂຄງການ: foo]
ຄຳ ສັ່ງ =/bin/cat
stanza ນີ້ອາດຈະຖືກຕັດແລະວາງເຂົ້າໄປໃນ supervisord.conf ໄຟລ໌. ນີ້ແມ່ນງ່າຍດາຍທີ່ສຸດ
ການຕັ້ງຄ່າໂຄງການທີ່ເປັນໄປໄດ້, ເພາະວ່າມັນພຽງແຕ່ຕັ້ງຊື່ຄໍາສັ່ງ. ການຕັ້ງຄ່າໂຄງການ
ພາກສ່ວນມີຫຼາຍທາງເລືອກໃນການຕັ້ງຄ່າອື່ນໆທີ່ບໍ່ໄດ້ສະແດງຢູ່ທີ່ນີ້. ເບິ່ງ
programx_section ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
ເຮັດວຽກ ຜູ້ຄຸມງານ
ເພື່ອເລີ່ມຕົ້ນ ຜູ້ຄຸມງານ, ດໍາເນີນການ $BINDIR/ຜູ້ຄຸມງານ. ຂະບວນການຜົນໄດ້ຮັບຈະ daemonize
ຕົວຂອງມັນເອງແລະແຍກອອກຈາກ terminal. ມັນຮັກສາບັນທຶກການດໍາເນີນງານຢູ່ $CWD/supervisor.log by
Default
ທ່ານອາດຈະເລີ່ມຕົ້ນການ ຜູ້ຄຸມງານ ການປະຕິບັດຢູ່ໃນ foreground ໄດ້ໂດຍຜ່ານການ -n ທຸງຂອງຕົນ
ເສັ້ນຄໍາສັ່ງ. ອັນນີ້ເປັນປະໂຫຍດເພື່ອແກ້ໄຂບັນຫາການເລີ່ມຕົ້ນ.
ຄໍາເຕືອນ:
ເມື່ອໃດ ຜູ້ຄຸມງານ ເລີ່ມຕົ້ນຂຶ້ນ, ມັນຈະຊອກຫາໄຟລ໌ການຕັ້ງຄ່າຂອງມັນຢູ່ໃນຄ່າເລີ່ມຕົ້ນ
ສະຖານທີ່ ລວມທັງ ໄດ້ ໃນປະຈຸບັນ ການເຮັດວຽກ ລະບົບ. ຖ້າເຈົ້າມີສະຕິຄວາມປອດໄພ ເຈົ້າ
ອາດຈະຕ້ອງການທີ່ຈະລະບຸ "-c" argument ຫຼັງຈາກ ຜູ້ຄຸມງານ ການລະບຸຄໍາສັ່ງ
ເສັ້ນທາງຢ່າງແທ້ຈິງໄປຫາໄຟລ໌ການຕັ້ງຄ່າເພື່ອຮັບປະກັນວ່າຜູ້ໃດຜູ້ຫນຶ່ງບໍ່ໄດ້ຫລອກລວງທ່ານ
ແລ່ນຜູ້ຄຸມງານຈາກພາຍໃນໄດເລກະທໍລີທີ່ປະກອບດ້ວຍຄົນຂີ້ຄ້ານ supervisord.conf ຍື່ນ.
ການເຕືອນໄພຈະຖືກປ່ອຍອອກມາເມື່ອຜູ້ຄຸມງານເລີ່ມຕົ້ນເປັນຮາກໂດຍບໍ່ມີການນີ້ -c ການໂຕ້ຖຽງ.
ການປ່ຽນແປງຊຸດຂອງໂຄງການທີ່ຄວບຄຸມໂດຍ ຜູ້ຄຸມງານ, ແກ້ໄຂ supervisord.conf ເອກະສານ
ແລະ ຂ້າ -HUP ຫຼື ຖ້າ ບໍ່ ດັ່ງ ນັ້ນ restart ໄດ້ ຜູ້ຄຸມງານ ຂະບວນການ. ໄຟລ໌ນີ້ມີຕົວຢ່າງຫຼາຍຢ່າງ
ຄໍານິຍາມໂຄງການ.
ໄດ້ ຜູ້ຄຸມງານ ຄໍາສັ່ງຍອມຮັບຈໍານວນຂອງຕົວເລືອກແຖວຄໍາສັ່ງ. ແຕ່ລະຄໍາສັ່ງເຫຼົ່ານີ້
ຕົວເລືອກເສັ້ນ overrides ຄ່າທຽບເທົ່າໃດໆໃນໄຟລ໌ການຕັ້ງຄ່າ.
ຜູ້ຄຸມງານ ເສັ້ນ ຄຳ ສັ່ງ ທາງເລືອກໃນການ
-c ເອກະສານ, --configuration=ເອກະສານ
ເສັ້ນທາງສູ່ ກ ຜູ້ຄຸມງານ ແຟ້ມການຕັ້ງຄ່າ.
-n, --nodaemon
ການດໍາເນີນງານ ຜູ້ຄຸມງານ ໃນດ້ານຫນ້າ.
-h, - ຊ່ວຍ
ສະແດງໃຫ້ເຫັນ ຜູ້ຄຸມງານ ການຊ່ວຍເຫຼືອຄໍາສັ່ງ.
-u ຜູ້ໃຊ້, --user=ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ UNIX ຫຼື id ຜູ້ໃຊ້ຕົວເລກ. ຖ້າ ຜູ້ຄຸມງານ ແມ່ນເລີ່ມຕົ້ນເປັນຜູ້ໃຊ້ຮາກ,
setuid ກັບຜູ້ໃຊ້ນີ້ໄວເທົ່າທີ່ເປັນໄປໄດ້ໃນລະຫວ່າງການເລີ່ມຕົ້ນ.
-m OCTAL, --umask=OCTAL
ຕົວເລກ octal (ເຊັ່ນ: 022) ເປັນຕົວແທນຂອງ umask ທີ່ຄວນຈະຖືກນໍາໃຊ້ໂດຍ ຜູ້ຄຸມງານ
ຫຼັງຈາກທີ່ມັນເລີ່ມຕົ້ນ.
-d PATH, --directory=PATH
ເມື່ອ supervisord ຖືກແລ່ນເປັນ daemon, cd ກັບ directory ນີ້ກ່ອນທີ່ຈະ daemonizing.
-l ເອກະສານ, --logfile=ເອກະສານ
ເສັ້ນທາງຊື່ໄຟລ໌ທີ່ຈະໃຊ້ເປັນບັນທຶກການເຄື່ອນໄຫວຂອງຜູ້ເບິ່ງແຍງ.
-y BYTES, --logfile_maxbytes=BYTES
ຂະໜາດສູງສຸດຂອງໄຟລ໌ບັນທຶກການເຄື່ອນໄຫວຂອງຜູ້ເບິ່ງແຍງກວດກາກ່ອນການຫມຸນຈະເກີດຂຶ້ນ. ມູນຄ່າ
ແມ່ນ suffix-multiplied, ເຊັ່ນ: "1" ແມ່ນຫນຶ່ງ byte, "1MB" ແມ່ນ 1 megabyte, "1GB" ແມ່ນ 1.
ກິກາໄບ.
-y NUMBER, --logfile_backups=NUMBER
ຈໍານວນສໍາເນົາສໍາຮອງຂອງບັນທຶກກິດຈະກໍາຂອງຜູ້ດູແລທີ່ຈະເກັບຮັກສາໄວ້. ແຕ່ລະ
logfile ຈະມີຂະຫນາດ logfile_maxbytes.
-e LEVEL, --loglevel=LEVEL
ລະດັບການບັນທຶກທີ່ຜູ້ຄຸມງານຄວນຂຽນໃສ່ບັນທຶກການເຄື່ອນໄຫວ. ຖືກຕ້ອງ
ລະດັບແມ່ນ trace, debug, ຂໍ້ມູນ, ເຕືອນ, ຄວາມຜິດພາດ, ແລະ ສໍາຄັນ.
-j ເອກະສານ, --pidfile=ເອກະສານ
ຊື່ໄຟລ໌ທີ່ຜູ້ຄຸມງານຄວນຂຽນໄຟລ໌ pid ຂອງມັນ.
-i ຄັກ, --identifier=ຄັກ
ຕົວລະບຸສະຕຣິງທີ່ຕົນເປີດເຜີຍໂດຍ UI ລູກຄ້າຕ່າງໆສຳລັບຕົວຢ່າງນີ້
ຜູ້ຄຸມງານ.
-q PATH, --childlogdir=PATH
ເສັ້ນທາງໄປຫາໄດເລກະທໍລີ (ມັນຕ້ອງມີຢູ່ແລ້ວ) ບ່ອນທີ່ຜູ້ຄຸມຈະຂຽນມັນ AUTO
-mode ບັນທຶກຂະບວນການຂອງເດັກນ້ອຍ.
-k, --nocleanup
ປ້ອງກັນ ຜູ້ຄຸມງານ ຈາກການທໍາຄວາມສະອາດ (ການໂຍກຍ້າຍຂອງເກົ່າ AUTO ໄຟລ໌ບັນທຶກຂະບວນການ)
ໃນຕອນເລີ່ມຕົ້ນ.
-a NUMBER, --minfds=NUMBER
ຈໍານວນຕົວອະທິບາຍໄຟລ໌ຕໍາ່ສຸດທີ່ຕ້ອງມີໃຫ້ຜູ້ຄຸມງານ
ຂະບວນການກ່ອນທີ່ມັນຈະເລີ່ມຕົ້ນຢ່າງສໍາເລັດຜົນ.
-t, --strip_ansi
ລຳດັບການຖອດ ANSI ອອກຈາກຂະບວນການບັນທຶກລູກທັງໝົດ.
-v, - ການປ່ຽນແປງ
ພິມໝາຍເລກຜູ້ເບິ່ງແຍງກວດກາອອກໄປທີ່ stdout ແລະອອກ.
--profile_options=LIST
ລາຍຊື່ຕົວເລືອກທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດສໍາລັບການສ້າງໂປຣໄຟລ໌. ສາເຫດ ຜູ້ຄຸມງານ ແລ່ນພາຍໃຕ້ ກ
profiler, ແລະຜົນໄດ້ຮັບຜົນໄດ້ຮັບໂດຍອີງໃສ່ທາງເລືອກ, ຊຶ່ງເປັນບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ
ຂອງສິ່ງຕໍ່ໄປນີ້: ສົມບູນ, ໂທ, ຜູ້ໂທ. ຕົວຢ່າງ ສະສົມ, ໂທ.
--minprocs=NUMBER
ຈຳນວນຂັ້ນຕ່ຳຂອງຊ່ອງປະມວນຜົນ OS ທີ່ຕ້ອງມີໃຫ້ຜູ້ຄຸມງານ
ຂະບວນການກ່ອນທີ່ມັນຈະເລີ່ມຕົ້ນຢ່າງສໍາເລັດຜົນ.
supervisorctl ເສັ້ນ ຄຳ ສັ່ງ ທາງເລືອກໃນການ
-c, --ການຕັ້ງຄ່າ
ເສັ້ນທາງໄຟລ໌ການຕັ້ງຄ່າ (ຄ່າເລີ່ມຕົ້ນ /etc/supervisord.conf)
-h, - ຊ່ວຍ
ພິມຂໍ້ຄວາມການນໍາໃຊ້ແລະອອກ
-i, --ໂຕ້ຕອບ
ເລີ່ມ shell ແບບໂຕ້ຕອບຫຼັງຈາກປະຕິບັດຄໍາສັ່ງ
-s,-- serverurl URL
URL ທີ່ເຊີບເວີຜູ້ຄວບຄຸມກໍາລັງຟັງ (ຄ່າເລີ່ມຕົ້ນ "http://localhost: 9001")
-u, --ຊື່ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ທີ່ຈະໃຊ້ສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ
-p, -ລະຫັດຜ່ານ
ລະຫັດຜ່ານທີ່ຈະໃຊ້ສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ
-r, --history-file
ຮັກສາປະຫວັດການອ່ານແຖວ (ຖ້າມີແຖວອ່ານຢູ່)
ການປະຕິບັດ [ການໂຕ້ຖຽງ]
ການປະຕິບັດແມ່ນຄໍາສັ່ງເຊັ່ນ "ຫາງ" ຫຼື "ຢຸດ". ຖ້າ -i ຖືກລະບຸຫຼືບໍ່ມີການປະຕິບັດແມ່ນຖືກກໍານົດ
ໃນບັນທັດຄໍາສັ່ງ, "ແກະ" ການຕີຄວາມຫມາຍການດໍາເນີນການພິມໂຕ້ຕອບແມ່ນເລີ່ມຕົ້ນ. ໃຊ້
ການປະຕິບັດ "ການຊ່ວຍເຫຼືອ" ເພື່ອຊອກຫາກ່ຽວກັບການດໍາເນີນການທີ່ມີຢູ່.
ເຮັດວຽກ supervisorctl
ເພື່ອເລີ່ມຕົ້ນ supervisorctl, ດໍາເນີນການ $BINDIR/supervisorctl. A shell ຈະຖືກນໍາສະເຫນີທີ່ຈະ
ອະນຸຍາດໃຫ້ທ່ານສາມາດຄວບຄຸມຂະບວນການທີ່ຖືກຄຸ້ມຄອງໃນປັດຈຸບັນ ຜູ້ຄຸມງານ. ພິມ "ຊ່ວຍ"
ໃນການກະຕຸ້ນໃຫ້ໄດ້ຮັບຂໍ້ມູນກ່ຽວກັບຄໍາສັ່ງທີ່ສະຫນັບສະຫນູນ.
ໄດ້ supervisorctl executable ອາດຈະຖືກຮຽກຮ້ອງດ້ວຍຄໍາສັ່ງ "ຫນຶ່ງຄັ້ງ" ໃນເວລາທີ່ invoked ກັບ
ການໂຕ້ຖຽງຈາກເສັ້ນຄໍາສັ່ງ. ຕົວຢ່າງ: supervisorctl ຢຸດ ທັງຫມົດ. ຖ້າມີການໂຕ້ຖຽງ
ປະຈຸບັນຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ມັນຈະປ້ອງກັນບໍ່ໃຫ້ shell ການໂຕ້ຕອບຈາກການຖືກເອີ້ນ.
ແທນທີ່ຈະ, ຄໍາສັ່ງຈະຖືກປະຕິບັດແລະ supervisorctl ຈະອອກ.
If supervisorctl ຖືກເອີ້ນໃນຮູບແບບໂຕ້ຕອບຕໍ່ກັບ a ຜູ້ຄຸມງານ ທີ່ຕ້ອງການ
ການກວດສອບຄວາມຖືກຕ້ອງ, ທ່ານຈະຖືກຮ້ອງຂໍໃຫ້ມີໃບຢັ້ງຢືນການພິສູດຢືນຢັນ.
ສັນຍານ
ໄດ້ ຜູ້ຄຸມງານ ໂຄງການອາດຈະໄດ້ຮັບການສົ່ງສັນຍານທີ່ເຮັດໃຫ້ມັນປະຕິບັດການປະຕິບັດບາງຢ່າງ
ໃນຂະນະທີ່ມັນແລ່ນ.
ທ່ານສາມາດສົ່ງສັນຍານໃດໆເຫຼົ່ານີ້ໄປຫາຄົນດຽວ ຜູ້ຄຸມງານ ID ຂະບວນການ ID ຂະບວນການນີ້
ສາມາດພົບເຫັນຢູ່ໃນໄຟລ໌ທີ່ເປັນຕົວແທນໂດຍ pidfile ຕົວກໍານົດການໃນ [ຜູ້ຄຸມງານ] ສ່ວນ
ຂອງໄຟລ໌ການຕັ້ງຄ່າ (ໂດຍຄ່າເລີ່ມຕົ້ນມັນເປັນ $CWD/supervisord.pid).
ສັນຍານ ມືຈັບ
ໄລຍະເປົ້າໝາຍ
ຜູ້ຄຸມງານ ແລະຂະບວນການຍ່ອຍຂອງມັນທັງຫມົດຈະປິດລົງ. ອັນນີ້ອາດຈະໃຊ້ເວລາຫຼາຍວິນາທີ.
ເຊັນເຂົ້າ
ຜູ້ຄຸມງານ ແລະຂະບວນການຍ່ອຍຂອງມັນທັງຫມົດຈະປິດລົງ. ອັນນີ້ອາດຈະໃຊ້ເວລາຫຼາຍວິນາທີ.
SIGQUIT
ຜູ້ຄຸມງານ ແລະຂະບວນການຍ່ອຍຂອງມັນທັງຫມົດຈະປິດລົງ. ອັນນີ້ອາດຈະໃຊ້ເວລາຫຼາຍວິນາທີ.
ຕິດຕາມ
ຜູ້ຄຸມງານ ຈະຢຸດຂະບວນການທັງໝົດ, ໂຫຼດການຕັ້ງຄ່າຄືນໃໝ່ຈາກການຕັ້ງຄ່າທຳອິດ
ໄຟລ໌ທີ່ມັນຊອກຫາ, ແລະ restart ຂະບວນການທັງຫມົດ.
SIGUSR2
ຜູ້ຄຸມງານ ຈະປິດ ແລະເປີດບັນທຶກການເຄື່ອນໄຫວຫຼັກ ແລະໄຟລ໌ບັນທຶກລູກທັງໝົດຄືນໃໝ່.
ເວລາແລ່ນ ຄວາມປອດໄພ
ນັກພັດທະນາໄດ້ເຮັດດີທີ່ສຸດເພື່ອຮັບປະກັນວ່າການນໍາໃຊ້ a ຜູ້ຄຸມງານ ຂະບວນການແລ່ນເປັນ
ຮາກບໍ່ສາມາດນໍາໄປສູ່ການຂະຫຍາຍສິດທິພິເສດທີ່ບໍ່ໄດ້ຕັ້ງໃຈ. ແຕ່ caveat ເຄື່ອງເປົ່າຫວ່າງ. ຜູ້ຄຸມງານແມ່ນ
ບໍ່ເປັນ paranoid ເປັນບາງສິ່ງບາງຢ່າງເຊັ່ນ: daemontools ຂອງ DJ Bernstein, ເທົ່າ ຜູ້ຄຸມງານ
ອະນຸຍາດໃຫ້ສໍາລັບການສະເພາະເສັ້ນທາງໂດຍຕົນເອງໃນໄຟລ໌ການຕັ້ງຄ່າຂອງຕົນທີ່ຈະເປັນຂໍ້ມູນ
ຂຽນ. ການອະນຸຍາດໃຫ້ເລືອກເສັ້ນທາງທີ່ຕົນເອງມັກສາມາດສ້າງຊ່ອງໂຫວ່ຈາກ symlink
ການໂຈມຕີ. ຈົ່ງລະມັດລະວັງໃນເວລາກໍານົດເສັ້ນທາງໃນການຕັ້ງຄ່າຂອງທ່ານ. ຮັບປະກັນວ່າ
ຜູ້ຄຸມງານ ໄຟລ໌ການຕັ້ງຄ່າບໍ່ສາມາດອ່ານຈາກ ຫຼືຂຽນຫາໂດຍຜູ້ໃຊ້ທີ່ບໍ່ໄດ້ຮັບສິດ ແລະ
ວ່າທຸກໄຟລ໌ທີ່ຕິດຕັ້ງໂດຍຊຸດຜູ້ຄຸມງານມີການປົກປ້ອງການອະນຸຍາດໄຟລ໌ "sane".
ການຕັ້ງຄ່າ. ນອກຈາກນັ້ນ, ໃຫ້ແນ່ໃຈວ່າຂອງທ່ານ ໄພທອນພົດ ແມ່ນດີແລະມາດຕະຖານ Python ທັງຫມົດ
ໄຟລ໌ຫ້ອງສະໝຸດມີການປົກປ້ອງການອະນຸຍາດໄຟລ໌ທີ່ພຽງພໍ.
ເຮັດວຽກ ຜູ້ຄຸມງານ ອັດຕະໂນມັດ on ເລີ່ມຕົ້ນລະບົບ
ຖ້າທ່ານກໍາລັງໃຊ້ Supervisor ສະບັບທີ່ມີການແຈກຢາຍ, ມັນຄວນຈະເປັນຢູ່ແລ້ວ
ປະສົມປະສານເຂົ້າໃນໂຄງສ້າງພື້ນຖານການຄຸ້ມຄອງການບໍລິການຂອງການແຈກຢາຍຂອງທ່ານ.
ມີສະຄຣິບທີ່ປະກອບສ່ວນໂດຍຜູ້ໃຊ້ສໍາລັບລະບົບປະຕິບັດການຕ່າງໆຢູ່ທີ່:
https://github.com/Supervisor/initscripts
ມີບາງຄໍາຕອບຢູ່ Serverfault ໃນກໍລະນີທີ່ເຈົ້າຕິດຢູ່: ວິທີການ to ອັດຕະໂນມັດ ການເລີ່ມຕົ້ນ
ຜູ້ຄຸມງານ on Linux (ubuntu)
ການຕັ້ງຄ່າ ເອກະສານ
ໄຟລ໌ການຕັ້ງຄ່າ Supervisor ມີຊື່ຕາມປົກກະຕິ supervisord.conf. ມັນຖືກນໍາໃຊ້ໂດຍ
ທັງສອງ ຜູ້ຄຸມງານ ແລະ supervisorctl. ຖ້າຄໍາຮ້ອງສະຫມັກທັງສອງແມ່ນເລີ່ມຕົ້ນໂດຍບໍ່ມີການ -c
ທາງເລືອກ (ທາງເລືອກທີ່ຖືກນໍາໃຊ້ເພື່ອບອກຄໍາຮ້ອງສະຫມັກຊື່ໄຟລ໌ການຕັ້ງຄ່າ
ຢ່າງຊັດເຈນ), ຄໍາຮ້ອງສະຫມັກຈະຊອກຫາໄຟລ໌ທີ່ມີຊື່ supervisord.conf ພາຍໃນ
ສະຖານທີ່ດັ່ງຕໍ່ໄປນີ້, ໃນຄໍາສັ່ງທີ່ກໍານົດໄວ້. ມັນຈະໃຊ້ໄຟລ໌ທໍາອິດທີ່ມັນພົບ.
1. $CWD/supervisord.conf
2. $CWD/etc/supervisord.conf
3. /etc/supervisord.conf
4. ../etc/supervisord.conf (ກ່ຽວກັບການປະຕິບັດໄດ້)
5. ../supervisord.conf (ກ່ຽວກັບການປະຕິບັດໄດ້)
ຫມາຍເຫດ:
ການແຈກຢາຍບາງຢ່າງໄດ້ຫຸ້ມຫໍ່ Supervisor ດ້ວຍການປັບແຕ່ງຂອງຕົນເອງ. ເຫຼົ່ານີ້
ສະບັບດັດແກ້ຂອງ Supervisor ອາດຈະໂຫລດໄຟລ໌ການຕັ້ງຄ່າຈາກສະຖານທີ່ອື່ນໆ
ຫຼາຍກ່ວາສິ່ງທີ່ອະທິບາຍຢູ່ທີ່ນີ້. ໂດຍສະເພາະ, ແພັກເກດ Ubuntu ໄດ້ຖືກພົບເຫັນວ່າໃຊ້
/etc/supervisor/supervisord.conf.
ເອກະສານ ຮູບແບບ
supervisord.conf ເປັນໄຟລ໌ແບບ Windows-INI (Python ConfigParser). ມັນມີພາກສ່ວນ (ແຕ່ລະ
ໝາຍເຖິງ ກ [ສ່ວນຫົວ]) ແລະຄູ່ທີ່ສໍາຄັນ / ມູນຄ່າພາຍໃນພາກສ່ວນ. ພາກສ່ວນແລະຂອງເຂົາເຈົ້າ
ຄ່າທີ່ອະນຸຍາດແມ່ນໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.
ສະພາບແວດລ້ອມ Variables
ຕົວແປສະພາບແວດລ້ອມທີ່ມີຢູ່ໃນສະພາບແວດລ້ອມໃນເວລານັ້ນ ຜູ້ຄຸມງານ is
ເລີ່ມຕົ້ນສາມາດຖືກນໍາໃຊ້ໃນໄຟລ໌ການຕັ້ງຄ່າໂດຍໃຊ້ syntax ການສະແດງອອກຂອງ Python string
%(ENV_X)s:
[ໂຄງການ: ຕົວຢ່າງ]
command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s
ໃນຕົວຢ່າງຂ້າງເທິງ, ການສະແດງອອກ %(ENV_LOGLEVEL)s ຈະຖືກຂະຫຍາຍໄປສູ່ມູນຄ່າຂອງ
ສະພາບແວດລ້ອມປ່ຽນແປງ LOGLEVEL.
ຫມາຍເຫດ:
ໃນ Supervisor 3.2 ແລະຕໍ່ມາ, %(ENV_X)s ການສະແດງອອກແມ່ນສະຫນັບສະຫນູນໃນທຸກທາງເລືອກ. ໃນ
ຮຸ່ນກ່ອນ, ບາງທາງເລືອກສະຫນັບສະຫນູນພວກເຂົາ, ແຕ່ສ່ວນຫຼາຍແມ່ນບໍ່ມີ. ເບິ່ງເອກະສານສໍາລັບ
ແຕ່ລະທາງເລືອກຂ້າງລຸ່ມນີ້.
[unix_http_server] ສ່ວນ ການຕັ້ງຄ່າ
ໄດ້ supervisord.conf ໄຟລ໌ປະກອບມີພາກສ່ວນທີ່ມີຊື່ [unix_http_server] ພາຍໃຕ້ການທີ່
ຕົວກໍານົດການກໍາຫນົດຄ່າສໍາລັບເຄື່ອງແມ່ຂ່າຍ HTTP ທີ່ຟັງຢູ່ໃນ socket ໂດເມນ UNIX ຄວນຈະເປັນ
ແຊກ. ຖ້າໄຟລ໌ການຕັ້ງຄ່າບໍ່ມີ [unix_http_server] ພາກ, ໂດເມນ UNIX
ເຊີບເວີ HTTP socket ຈະບໍ່ຖືກເລີ່ມຕົ້ນ. ຄ່າການຕັ້ງຄ່າທີ່ອະນຸຍາດແມ່ນເປັນ
ຕໍ່ໄປນີ້.
[unix_http_server] ສ່ວນ ມູນຄ່າ
ເອກະສານ
ເສັ້ນທາງໄປຫາຊັອກເກັດໂດເມນ UNIX (ຕົວຢ່າງ /tmp/supervisord.sock) ທີ່ຜູ້ຄຸມງານຈະ
ຟັງການຮ້ອງຂໍ HTTP/XML-RPC. supervisorctl ໃຊ້ XML-RPC ເພື່ອຕິດຕໍ່ສື່ສານກັບ
ຜູ້ຄຸມງານ ເທິງທ່າເຮືອນີ້. ທາງເລືອກນີ້ສາມາດລວມມູນຄ່າ %(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍ
ໄປຫາໄດເລກະທໍລີທີ່ ຜູ້ຄຸມງານ ພົບໄຟລ໌ການຕັ້ງຄ່າ.
ມາດຕະຖານ: ບໍ່ມີ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
chmod
ປ່ຽນບິດໂໝດການອະນຸຍາດ UNIX ຂອງຊັອກເກັດໂດເມນ UNIX ເປັນຄ່ານີ້ຢູ່ທີ່
ເລີ່ມຕົ້ນ
ມາດຕະຖານ: 0700
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
chown
ປ່ຽນຜູ້ໃຊ້ ແລະກຸ່ມຂອງໄຟລ໌ຊັອກເກັດເປັນຄ່ານີ້. ອາດຈະເປັນຊື່ຜູ້ໃຊ້ UNIX
(ຕົວຢ່າງ ພະຄລິດ) ຫຼືຊື່ຜູ້ໃຊ້ UNIX ແລະກຸ່ມທີ່ແຍກອອກໂດຍຈໍ້າສອງເມັດ (ຕົວຢ່າງ chrism:ລໍ້).
ມາດຕະຖານ: ໃຊ້ຊື່ຜູ້ໃຊ້ແລະກຸ່ມຂອງຜູ້ໃຊ້ທີ່ເລີ່ມຕົ້ນຜູ້ເບິ່ງແຍງ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ຊື່ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ທີ່ຕ້ອງການສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ HTTP ນີ້.
ມາດຕະຖານ: ບໍ່ມີຊື່ຜູ້ໃຊ້ທີ່ຕ້ອງການ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະຫັດຜ່ານ
ລະຫັດຜ່ານທີ່ຕ້ອງການສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ HTTP ນີ້. ນີ້ສາມາດເປັນຂໍ້ຄວາມທີ່ຊັດເຈນ
ລະຫັດຜ່ານ, ຫຼືສາມາດໄດ້ຮັບການລະບຸໄວ້ເປັນ hash SHA-1 ຖ້າຫາກວ່າຄໍານໍາຫນ້າໂດຍສະຕຣິງ {SHA}ທີ່ຢູ່ ສໍາລັບ
ຍົກຕົວຢ່າງ, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d ແມ່ນ SHA ສະບັບທີ່ເກັບຮັກສາໄວ້ຂອງ
ລະຫັດຜ່ານ "thepassword".
ໃຫ້ສັງເກດວ່າລະຫັດຜ່ານທີ່ hashed ຈະຕ້ອງຢູ່ໃນຮູບແບບ hex.
ມາດຕະຖານ: ບໍ່ຕ້ອງການລະຫັດຜ່ານ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[unix_http_server] ສ່ວນ ຍົກຕົວຢ່າງ
[unix_http_server]
file = /tmp/supervisor.sock
chmod = 0777
chown= nobody:ກຸ່ມ
username = ຜູ້ໃຊ້
ລະຫັດຜ່ານ = 123
[inet_http_server] ສ່ວນ ການຕັ້ງຄ່າ
ໄດ້ supervisord.conf ໄຟລ໌ປະກອບມີພາກສ່ວນທີ່ມີຊື່ [inet_http_server] ພາຍໃຕ້ການທີ່
ຕົວກໍານົດການກໍານົດສໍາລັບເຄື່ອງແມ່ຂ່າຍ HTTP ທີ່ຟັງຢູ່ໃນເຕົ້າຮັບ TCP (ອິນເຕີເນັດ) ຄວນ
ແຊກ. ຖ້າໄຟລ໌ການຕັ້ງຄ່າບໍ່ມີ [inet_http_server] ພາກ, inet HTTP
ເຊີບເວີຈະບໍ່ຖືກເລີ່ມຕົ້ນ. ຄ່າການຕັ້ງຄ່າທີ່ອະນຸຍາດມີດັ່ງນີ້.
[inet_http_server] ສ່ວນ ມູນຄ່າ
port
ເຈົ້າພາບ TCP: ຄ່າພອດ ຫຼື (ເຊັ່ນ 127.0.0.1:9001) ຜູ້ຄຸມງານຈະຮັບຟັງເລື່ອງໃດ
ການຮ້ອງຂໍ HTTP/XML-RPC. supervisorctl ຈະໃຊ້ XML-RPC ເພື່ອຕິດຕໍ່ສື່ສານກັບ ຜູ້ຄຸມງານ
ເທິງທ່າເຮືອນີ້. ເພື່ອຟັງທຸກສ່ວນຕິດຕໍ່ໃນເຄື່ອງ, ໃຫ້ໃຊ້ : 9001 or *:9001.
ມາດຕະຖານ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ.
ທີ່ກໍານົດໄວ້: ແມ່ນແລ້ວ.
ແນະ ນຳ: 3.0
ຊື່ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ທີ່ຕ້ອງການສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ HTTP ນີ້.
ມາດຕະຖານ: ບໍ່ມີຊື່ຜູ້ໃຊ້ທີ່ຕ້ອງການ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະຫັດຜ່ານ
ລະຫັດຜ່ານທີ່ຕ້ອງການສໍາລັບການພິສູດຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍ HTTP ນີ້. ນີ້ສາມາດເປັນຂໍ້ຄວາມທີ່ຊັດເຈນ
ລະຫັດຜ່ານ, ຫຼືສາມາດໄດ້ຮັບການລະບຸໄວ້ເປັນ hash SHA-1 ຖ້າຫາກວ່າຄໍານໍາຫນ້າໂດຍສະຕຣິງ {SHA}ທີ່ຢູ່ ສໍາລັບ
ຍົກຕົວຢ່າງ, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d ແມ່ນ SHA ສະບັບທີ່ເກັບຮັກສາໄວ້ຂອງ
ລະຫັດຜ່ານ "thepassword".
ໃຫ້ສັງເກດວ່າລະຫັດຜ່ານທີ່ hashed ຈະຕ້ອງຢູ່ໃນຮູບແບບ hex.
ມາດຕະຖານ: ບໍ່ຕ້ອງການລະຫັດຜ່ານ.
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[inet_http_server] ສ່ວນ ຍົກຕົວຢ່າງ
[inet_http_server]
ພອດ = 127.0.0.1:9001
username = ຜູ້ໃຊ້
ລະຫັດຜ່ານ = 123
[ຜູ້ຄຸມງານ] ສ່ວນ ການຕັ້ງຄ່າ
ໄດ້ supervisord.conf ໄຟລ໌ປະກອບມີພາກສ່ວນທີ່ມີຊື່ [ຜູ້ຄຸມງານ] ໃນການຕັ້ງຄ່າທົ່ວໂລກ
ກ່ຽວຂ້ອງກັບ ຜູ້ຄຸມງານ ຂະບວນການຄວນຈະຖືກໃສ່. ເຫຼົ່ານີ້ແມ່ນດັ່ງຕໍ່ໄປນີ້.
[ຜູ້ຄຸມງານ] ສ່ວນ ມູນຄ່າ
logfile
ເສັ້ນທາງໄປສູ່ບັນທຶກການເຄື່ອນໄຫວຂອງຂະບວນການຜູ້ຄຸມງານ. ທາງເລືອກນີ້ສາມາດປະກອບມີ
ມູນຄ່າ %(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍໄປຫາໄດເລກະທໍລີທີ່ການຕັ້ງຄ່າຜູ້ເບິ່ງແຍງ
ພົບໄຟລ໌.
ມາດຕະຖານ: $CWD/supervisord.log
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
logfile_maxbytes
ຈໍານວນສູງສຸດຂອງໄບຕ໌ທີ່ອາດຈະຖືກນໍາໃຊ້ໂດຍໄຟລ໌ບັນທຶກກິດຈະກໍາກ່ອນທີ່ຈະເປັນ
rotated (ຕົວຄູນຕໍ່ທ້າຍເຊັ່ນ "KB", "MB", ແລະ "GB" ສາມາດຖືກນໍາໃຊ້ໃນມູນຄ່າ). ຕັ້ງ
ຄ່ານີ້ເປັນ 0 ເພື່ອຊີ້ບອກຂະໜາດບັນທຶກບໍ່ຈຳກັດ.
ມາດຕະຖານ: 50MB
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
logfile_backups
ຈໍານວນຂອງການສໍາຮອງຂໍ້ມູນທີ່ຈະຮັກສາປະມານຈາກການຫມຸນໄຟລ໌ບັນທຶກກິດຈະກໍາ. ຖ້າຕັ້ງ
ເປັນ 0, ບໍ່ມີການສໍາຮອງຂໍ້ມູນຈະຖືກເກັບຮັກສາໄວ້.
ມາດຕະຖານ: 10
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
loglevel
ລະດັບການບັນທຶກ, ກໍານົດສິ່ງທີ່ຂຽນໃສ່ບັນທຶກກິດຈະກໍາຂອງຜູ້ເບິ່ງແຍງ. ຫນຶ່ງໃນ
ສໍາຄັນ, ຄວາມຜິດພາດ, ເຕືອນ, ຂໍ້ມູນ, debug, trace, ຫຼື ເປົ່າລົມ. ໃຫ້ສັງເກດວ່າຢູ່ໃນລະດັບບັນທຶກ debug,
ໄຟລ໌ບັນທຶກຜູ້ເບິ່ງແຍງກວດກາຈະບັນທຶກຜົນຜະລິດ stderr/stdout ຂອງຂະບວນການລູກຂອງມັນ
ແລະຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການປ່ຽນແປງສະຖານະຂະບວນການ, ເຊິ່ງເປັນປະໂຫຍດສໍາລັບການດີບັກ a
ຂະບວນການທີ່ເລີ່ມຕົ້ນບໍ່ຖືກຕ້ອງ. ເບິ່ງ: activity_log_levels.
ມາດຕະຖານ: ຂໍ້ມູນ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
pidfile
ສະຖານທີ່ທີ່ຜູ້ເບິ່ງແຍງຮັກສາໄຟລ໌ pid ຂອງມັນ. ທາງເລືອກນີ້ສາມາດປະກອບມີ
ມູນຄ່າ %(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍໄປຫາໄດເລກະທໍລີທີ່ການຕັ້ງຄ່າຜູ້ເບິ່ງແຍງ
ພົບໄຟລ໌.
ມາດຕະຖານ: $CWD/supervisord.pid
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ໜ້າ ກາກ
umask ຂອງຂະບວນການຄວບຄຸມ.
ມາດຕະຖານ: 022
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
nodaemon
ຖ້າເປັນຄວາມຈິງ, ຜູ້ຄຸມງານຈະເລີ່ມຕົ້ນຢູ່ເບື້ອງໜ້າແທນທີ່ຈະເປັນ daemonizing.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
minfds
ຈໍານວນຕົວອະທິບາຍໄຟລ໌ຕໍາ່ສຸດທີ່ຕ້ອງມີໃຫ້ກ່ອນຜູ້ຄຸມງານຈະ
ເລີ່ມສົບຜົນສໍາເລັດ. ການໂທຫາກໍານົດຂອບເຂດຈໍາກັດຈະຖືກດໍາເນີນເພື່ອພະຍາຍາມຍົກສູງຄວາມອ່ອນໂຍນແລະ
ຂໍ້ຈໍາກັດທີ່ຍາກຂອງຂະບວນການຄວບຄຸມເພື່ອຕອບສະຫນອງ minfds. ຂອບເຂດຈໍາກັດຍາກອາດຈະເປັນພຽງແຕ່
ຍົກຂຶ້ນມາຖ້າຜູ້ຄວບຄຸມຖືກດໍາເນີນການເປັນຮາກ. ຜູ້ຄຸມງານໃຊ້ຕົວອະທິບາຍໄຟລ໌ຢ່າງເສລີ, ແລະ
ຈະເຂົ້າສູ່ໂຫມດຄວາມລົ້ມເຫລວໃນເວລາທີ່ຫນຶ່ງບໍ່ສາມາດໄດ້ຮັບຈາກ OS, ສະນັ້ນມັນເປັນປະໂຫຍດທີ່ຈະເປັນ
ສາມາດລະບຸຄ່າຕໍາ່ສຸດທີ່ເພື່ອຮັບປະກັນວ່າມັນບໍ່ໄດ້ແລ່ນອອກຈາກພວກມັນໃນລະຫວ່າງການປະຕິບັດ.
ຕົວເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໂດຍສະເພາະໃນ Solaris, ເຊິ່ງມີຂອບເຂດຈໍາກັດ fd ຕໍ່ຂະບວນການຕ່ໍາໂດຍ
Default
ມາດຕະຖານ: 1024
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
minprocs
ຈຳນວນຕົວອະທິບາຍຂະບວນການຂັ້ນຕ່ຳທີ່ຕ້ອງມີໃຫ້ກ່ອນຜູ້ຄຸມງານ
ຈະເລີ່ມຕົ້ນຢ່າງສໍາເລັດຜົນ. ຈະມີການໂທຫາ setrlimit ເພື່ອພະຍາຍາມຍົກສູງບົດບາດຂອງອ່ອນ
ແລະຂໍ້ຈໍາກັດແຂງຂອງຂະບວນການຜູ້ດູແລເພື່ອຄວາມພໍໃຈ minprocs. ຂອບເຂດຈໍາກັດຍາກອາດຈະ
ພຽງແຕ່ຈະໄດ້ຮັບການຍົກສູງຂຶ້ນຖ້າຫາກວ່າຜູ້ຄວບຄຸມແມ່ນດໍາເນີນການເປັນຮາກ. ຜູ້ຄຸມງານຈະເຂົ້າສູ່ໂໝດລົ້ມເຫຼວ
ໃນເວລາທີ່ OS ແລ່ນອອກຈາກຕົວອະທິບາຍຂະບວນການ, ສະນັ້ນມັນເປັນປະໂຫຍດເພື່ອຮັບປະກັນວ່າພຽງພໍ
ຕົວອະທິບາຍຂະບວນການແມ່ນມີຢູ່ ຜູ້ຄຸມງານ ເລີ່ມຕົ້ນ
ມາດຕະຖານ: 200
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລ້າງອະນາໄມ
ປ້ອງກັນບໍ່ໃຫ້ຜູ້ຄຸມງານລຶບລ້າງສິ່ງທີ່ມີຢູ່ແລ້ວ AUTO ໄຟລ໌ບັນທຶກຂອງເດັກນ້ອຍໃນເວລາເລີ່ມຕົ້ນ.
ເປັນປະໂຫຍດສໍາລັບການດີບັກ.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
Childlogdir
ໄດເລກະທໍລີທີ່ໃຊ້ສໍາລັບ AUTO ໄຟລ໌ບັນທຶກຂອງເດັກນ້ອຍ. ຕົວເລືອກນີ້ສາມາດລວມຄ່າໄດ້
%(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍໄປຫາໄດເລກະທໍລີທີ່ ຜູ້ຄຸມງານ ແຟ້ມການຕັ້ງຄ່າ
ໄດ້ພົບເຫັນ.
ມາດຕະຖານ: ຄ່າຂອງ Python's tempfile.get_tempdir()
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ຜູ້ໃຊ້
ແນະ ນຳ ຜູ້ຄຸມງານ ເພື່ອປ່ຽນຜູ້ໃຊ້ໄປຫາບັນຊີຜູ້ໃຊ້ UNIX ນີ້ກ່ອນທີ່ຈະດໍາເນີນການໃດໆ
ການປຸງແຕ່ງທີ່ມີຄວາມຫມາຍ. ຜູ້ໃຊ້ສາມາດປ່ຽນໄດ້ພຽງແຕ່ຖ້າ ຜູ້ຄຸມງານ ແມ່ນ ໄດ້ ເລີ່ມ ຕົ້ນ ເປັນ
ຜູ້ໃຊ້ຮາກ. ຖ້າ ຜູ້ຄຸມງານ ບໍ່ສາມາດປ່ຽນຜູ້ໃຊ້ໄດ້, ມັນຈະສືບຕໍ່ແຕ່ຈະຂຽນ a
ບັນທຶກຂໍ້ຄວາມຢູ່ທີ່ ສໍາຄັນ ລະດັບກ່າວວ່າມັນບໍ່ສາມາດລຸດສິດທິພິເສດໄດ້.
ມາດຕະຖານ: ບໍ່ປ່ຽນຜູ້ໃຊ້
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະບົບ
ເມື່ອໃດ ຜູ້ຄຸມງານ daemonizes, ສະຫຼັບໄປຫາໄດເລກະທໍລີນີ້. ທາງເລືອກນີ້ສາມາດປະກອບມີ
ມູນຄ່າ %(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍໄປຫາໄດເລກະທໍລີທີ່ ຜູ້ຄຸມງານ configuration
ພົບໄຟລ໌.
ມາດຕະຖານ: ຢ່າ cd
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
strip_ansi
ຖອດລຳດັບການໜີ ANSI ທັງໝົດອອກຈາກໄຟລ໌ບັນທຶກຂອງລູກ.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ສະພາບແວດລ້ອມ
ບັນຊີລາຍຊື່ຂອງຄູ່ຄີ/ມູນຄ່າໃນຮູບແບບ KEY="val",KEY2="val2" ທີ່ຈະຖືກຈັດໃສ່ໃນ
ຜູ້ຄຸມງານ ສະພາບແວດລ້ອມຂອງຂະບວນການ (ແລະເປັນຜົນມາຈາກຂະບວນການຂອງລູກຂອງມັນທັງຫມົດ'
ສະພາບແວດລ້ອມ). ທາງເລືອກນີ້ສາມາດລວມມູນຄ່າ %(ທີ່ນີ້)s, ເຊິ່ງຂະຫຍາຍໄປສູ່
ໄດເລກະທໍລີທີ່ພົບໄຟລ໌ການຕັ້ງຄ່າຜູ້ເບິ່ງແຍງ. ຄ່າທີ່ປະກອບດ້ວຍ
ຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກຄວນຖືກອ້າງອີງ (ຕົວຢ່າງ KEY="val:123",KEY2="val,456").
ຖ້າບໍ່ດັ່ງນັ້ນ, ການອ້າງອີງຄ່າແມ່ນເປັນທາງເລືອກແຕ່ແນະນໍາ. ເພື່ອຫລົບຫນີເປີເຊັນ
ຕົວອັກສອນ, ພຽງແຕ່ໃຊ້ສອງ. (ຕົວຢ່າງ URI="/first%%20name") ຫມາຍເຫດ ຂະບວນການຍ່ອຍທີ່ຈະ
ສືບທອດຕົວແປສະພາບແວດລ້ອມຂອງແກະທີ່ໃຊ້ເພື່ອເລີ່ມຕົ້ນ ຜູ້ຄຸມງານ ຍົກເວັ້ນສໍາລັບການ
ໂຕທີ່ overridden ຢູ່ທີ່ນີ້ ແລະພາຍໃນໂຄງການ ສະພາບແວດລ້ອມ ທາງເລືອກ. ເບິ່ງ
subprocess_vironment.
ມາດຕະຖານ: ບໍ່ມີຄ່າ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ຕົວລະບຸ
ສະຕຣິງຕົວລະບຸສໍາລັບຂະບວນການຜູ້ຄຸມງານນີ້, ໃຊ້ໂດຍການໂຕ້ຕອບ RPC.
ມາດຕະຖານ: ຜູ້ຄຸມງານ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[ຜູ້ຄຸມງານ] ສ່ວນ ຍົກຕົວຢ່າງ
[ຜູ້ຄຸມງານ]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = ຂໍ້ມູນ
pidfile = /tmp/supervisord.pid
nodaemon = ບໍ່ຖືກຕ້ອງ
minfds = 1024
minprocs = 200
umask = 022
user = chrism
identifier = ຜູ້ຄຸມງານ
ໄດເລກະທໍລີ = / tmp
nocleanup = ຄວາມຈິງ
childlogdir = / tmp
strip_ansi = ບໍ່ຖືກຕ້ອງ
ສະພາບແວດລ້ອມ = KEY1="value1",KEY2="value2"
[ຜູ້ຄຸມງານ] ສ່ວນ ການຕັ້ງຄ່າ
ໄຟລ໌ການຕັ້ງຄ່າອາດຈະປະກອບດ້ວຍການຕັ້ງຄ່າສໍາລັບ supervisorctl shell interactive
ໂຄງການ. ຕົວເລືອກເຫຼົ່ານີ້ມີລາຍຊື່ຂ້າງລຸ່ມນີ້.
[ຜູ້ຄຸມງານ] ສ່ວນ ມູນຄ່າ
serverurl
URL ທີ່ຄວນຈະຖືກນໍາໃຊ້ເພື່ອເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍຂອງຜູ້ເບິ່ງແຍງ, e.g
http://localhost: 9001. ສຳລັບຊັອກເກັດໂດເມນຂອງ UNIX, ໃຫ້ໃຊ້
unix:///absolute/path/to/file.sock.
ມາດຕະຖານ: http://localhost: 9001
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ຊື່ຜູ້ໃຊ້
ຊື່ຜູ້ໃຊ້ທີ່ຈະສົ່ງໄປຫາເຊີບເວີຜູ້ຄວບຄຸມເພື່ອໃຊ້ໃນການກວດສອບຄວາມຖືກຕ້ອງ. ອັນນີ້ຄວນ
ຄືກັນກັບ ຊື່ຜູ້ໃຊ້ ຈາກການຕັ້ງຄ່າເຊີບເວີຜູ້ຄວບຄຸມສຳລັບພອດ ຫຼື UNIX
ຊັອກເກັດໂດເມນທີ່ທ່ານກໍາລັງພະຍາຍາມເຂົ້າເຖິງ.
ມາດຕະຖານ: ບໍ່ມີຊື່ຜູ້ໃຊ້
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະຫັດຜ່ານ
ລະຫັດຜ່ານທີ່ຈະຜ່ານໄປໃຫ້ເຊີບເວີ supervisord ສໍາລັບການນໍາໃຊ້ໃນການກວດສອບ. ອັນນີ້ຄວນ
ເປັນສະບັບ cleartext ຂອງ ລະຫັດຜ່ານ ຈາກການຕັ້ງຄ່າເຊີບເວີຜູ້ເບິ່ງແຍງສໍາລັບ
ພອດ ຫຼືຊັອກເກັດໂດເມນ UNIX ທີ່ທ່ານກຳລັງພະຍາຍາມເຂົ້າເຖິງ. ຄ່ານີ້ບໍ່ສາມາດຖືກສົ່ງເປັນ
ເປັນ hash SHA. ບໍ່ເຫມືອນກັບລະຫັດຜ່ານອື່ນໆທີ່ລະບຸໄວ້ໃນໄຟລ໌ນີ້, ມັນຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ຢູ່ໃນ
cleartext.
ມາດຕະຖານ: ບໍ່ມີລະຫັດຜ່ານ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ການກະຕຸ້ນເຕືອນ
String ໃຊ້ເປັນ supervisorctl prompt.
ມາດຕະຖານ: supervisor
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
history_file
ເສັ້ນທາງທີ່ຈະໃຊ້ເປັນ ເສັ້ນອ່ານ ໄຟລ໌ປະຫວັດສາດທີ່ຄົງຄ້າງ. ຖ້າທ່ານເປີດໃຊ້ຄຸນສົມບັດນີ້ໂດຍ
ການເລືອກເສັ້ນທາງ, ຄໍາສັ່ງ supervisorctl ຂອງທ່ານຈະຖືກເກັບໄວ້ໃນໄຟລ໌, ແລະທ່ານສາມາດນໍາໃຊ້
readline (ເຊັ່ນ: ລູກສອນຂຶ້ນ) ເພື່ອເອີ້ນຄໍາສັ່ງທີ່ທ່ານປະຕິບັດຢູ່ໃນ supervisorctl ສຸດທ້າຍຂອງທ່ານ
session
ມາດຕະຖານ: ບໍ່ມີໄຟລ໌
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0a5
[ຜູ້ຄຸມງານ] ສ່ວນ ຍົກຕົວຢ່າງ
[ຜູ້ຄຸມງານ]
serverurl = unix:///tmp/supervisor.sock
ຊື່ຜູ້ໃຊ້ = chris
ລະຫັດຜ່ານ = 123
prompt = mysupervisor
[ໂຄງການ:x] ສ່ວນ ການຕັ້ງຄ່າ
ໄຟລ໌ການຕັ້ງຄ່າຕ້ອງມີໜຶ່ງ ຫຼືຫຼາຍກວ່ານັ້ນ ໂຄງການ ພາກສ່ວນເພື່ອໃຫ້ຜູ້ຄວບຄຸມ
ເພື່ອຮູ້ວ່າໂຄງການໃດທີ່ມັນຄວນຈະເລີ່ມຕົ້ນແລະຄວບຄຸມ. ຄ່າສ່ວນຫົວແມ່ນຄ່າປະສົມ.
ມັນແມ່ນຄໍາວ່າ "ໂຄງການ", ຕິດຕາມໂດຍກົງດ້ວຍຈໍ້າສອງເມັດ, ຫຼັງຈາກນັ້ນຊື່ໂຄງການ. ສ່ວນຫົວ
ມູນຄ່າຂອງ [ໂຄງການ: foo] ອະທິບາຍໂຄງການທີ່ມີຊື່ຂອງ "foo". ຊື່ແມ່ນໃຊ້
ພາຍໃນຄໍາຮ້ອງສະຫມັກລູກຄ້າທີ່ຄວບຄຸມຂະບວນການທີ່ຖືກສ້າງຂຶ້ນເປັນຜົນມາຈາກການນີ້
ການຕັ້ງຄ່າ. ມັນເປັນຄວາມຜິດພາດໃນການສ້າງ a ໂຄງການ ພາກສ່ວນທີ່ບໍ່ມີຊື່. ໄດ້
ຊື່ຈະຕ້ອງບໍ່ມີຕົວອັກສອນຈໍ້າສອງເມັດ ຫຼືຕົວອັກສອນວົງເລັບ. ມູນຄ່າຂອງຊື່ແມ່ນ
ໃຊ້ເປັນຄ່າຂອງ %(program_name)s ການຂະຫຍາຍການສະແດງອອກຂອງສະຕຣິງພາຍໃນຄ່າອື່ນໆ
ບ່ອນທີ່ລະບຸໄວ້.
ຫມາຍເຫດ:
A [ໂຄງການ:x] ພາກສ່ວນຕົວຈິງເປັນຕົວແທນ "ກຸ່ມຂະບວນການເປັນເອກະພາບ" ກັບຜູ້ດູແລ
(ເປັນຂອງ 3.0). ສະມາຊິກຂອງກຸ່ມແມ່ນຖືກກໍານົດໂດຍການລວມກັນຂອງ ຕົວເລກ
ແລະ process_name ຕົວກໍານົດການໃນການຕັ້ງຄ່າ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຖ້າ numprocs ແລະ
process_name ຖືກປະໄວ້ບໍ່ປ່ຽນແປງຈາກຄ່າເລີ່ມຕົ້ນຂອງພວກເຂົາ, ກຸ່ມທີ່ເປັນຕົວແທນໂດຍ
[ໂຄງການ:x] ຈະໄດ້ຮັບການຕັ້ງຊື່ x ແລະຈະມີຂະບວນການດຽວທີ່ມີຊື່ x ໃນມັນ. ນີ້
ສະຫນອງ modicum ຂອງຄວາມເຂົ້າກັນໄດ້ໃນດ້ານຫລັງກັບການປ່ອຍຜູ້ຄຸມງານເກົ່າ, ເຊິ່ງໄດ້ເຮັດ
ບໍ່ປະຕິບັດພາກສ່ວນໂຄງການເປັນຄໍານິຍາມກຸ່ມຂະບວນການດຽວກັນ.
ແຕ່ຕົວຢ່າງ, ຖ້າທ່ານມີ [ໂຄງການ: foo] ພາກສ່ວນທີ່ມີ ກ ຕົວເລກ ຂອງ 3 ແລະ a
process_name ການສະແດງອອກຂອງ %(program_name)s_%(process_num)02d, ກຸ່ມ "foo" ຈະ
ປະກອບມີສາມຂະບວນການ, ຊື່ foo_00, foo_01, ແລະ foo_02. ນີ້ເຮັດໃຫ້ມັນເປັນໄປໄດ້
ເລີ່ມຂະບວນການທີ່ຄ້າຍຄືກັນຫຼາຍໂດຍໃຊ້ອັນດຽວ [ໂຄງການ:x] ພາກ. ທັງໝົດ
ຊື່ logfile, ສະຕຣິງສະພາບແວດລ້ອມທັງຫມົດ, ແລະຄໍາສັ່ງຂອງໂປລແກລມຍັງສາມາດປະກອບມີ
Python string expressions ທີ່ຄ້າຍຄືກັນ, ເພື່ອຜ່ານຕົວກໍານົດການທີ່ແຕກຕ່າງກັນເລັກນ້ອຍກັບແຕ່ລະຄົນ
ຂະບວນການ.
[ໂຄງການ:x] ສ່ວນ ມູນຄ່າ
ຄໍາສັ່ງ
ຄໍາສັ່ງທີ່ຈະດໍາເນີນການໃນເວລາທີ່ໂຄງການນີ້ໄດ້ຖືກເລີ່ມຕົ້ນ. ຄໍາສັ່ງສາມາດເປັນ
ຢ່າງແທ້ຈິງ (ຕົວຢ່າງ /path/to/ຊື່ໂປຣແກຣມ) ຫຼືພີ່ນ້ອງ (ເຊັ່ນ ຊື່ໂຄງການ). ຖ້າມັນແມ່ນ
ພີ່ນ້ອງ, ສະພາບແວດລ້ອມຂອງຜູ້ເບິ່ງແຍງ $ PATH ຈະຖືກຄົ້ນຫາສໍາລັບການປະຕິບັດ.
ບັນດາໂຄງການສາມາດຍອມຮັບການໂຕ້ຖຽງ, e.g /path/to/ໂຄງການ ຟູ ພາທະນາຍຄວາມ. ເສັ້ນຄໍາສັ່ງສາມາດນໍາໃຊ້
ວົງຢືມສອງເທົ່າຕໍ່ກັບການໂຕ້ຖຽງກຸ່ມທີ່ມີຊ່ອງຫວ່າງຢູ່ໃນພວກມັນເພື່ອຜ່ານໄປຫາໂປຣແກຣມ, ຕົວຢ່າງ
/path/to/program/name -p "ຟູ ບາ". ໃຫ້ສັງເກດວ່າມູນຄ່າຂອງ ຄໍາສັ່ງ ອາດຈະປະກອບມີ Python
string expressions, eg /path/to/ຊື່ໂປຣແກຣມ --port=80%(process_num)02d ອາດຈະຂະຫຍາຍຕົວ
to /path/to/ຊື່ໂປຣແກຣມ --port=8000 ໃນເວລາແລ່ນ. ການສະແດງສະຕິງຖືກປະເມີນ
ຕໍ່ກັບວັດຈະນານຸກົມທີ່ມີກະແຈ group_name, host_node_name, process_num,
program_name, ທີ່ນີ້ (ໄດເລກະທໍລີຂອງໄຟລ໌ config supervisord), ແລະທັງຫມົດ
ຕົວແປສະພາບແວດລ້ອມຂອງຜູ້ເບິ່ງແຍງກວດກາທີ່ນຳໜ້າດ້ວຍ ENV_. ໂຄງການຄວບຄຸມຄວນ
ຕົວເອງບໍ່ແມ່ນ daemon, ຍ້ອນວ່າຜູ້ຄຸມງານຖືວ່າມັນມີຄວາມຮັບຜິດຊອບຕໍ່ daemonizing ຂອງມັນ
ຂະບວນການຍ່ອຍ (ເບິ່ງ nondaemonizing_of_subprocesses).
ມາດຕະຖານ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ.
ທີ່ກໍານົດໄວ້: ແມ່ນແລ້ວ.
ແນະ ນຳ: 3.0
process_name
ການສະແດງອອກຂອງສະຕຣິງ Python ທີ່ຖືກນໍາໃຊ້ເພື່ອປະກອບຊື່ຂະບວນການຂອງຜູ້ເບິ່ງແຍງສໍາລັບການນີ້
ຂະບວນການ. ໂດຍປົກກະຕິແລ້ວ ເຈົ້າບໍ່ຈຳເປັນຕ້ອງກັງວົນກ່ຽວກັບການຕັ້ງຄ່າອັນນີ້ ເວັ້ນເສຍແຕ່ເຈົ້າຈະປ່ຽນ
ຕົວເລກ. ການສະແດງອອກຂອງສະຕຣິງຖືກປະເມີນຕໍ່ກັບວັດຈະນານຸກົມທີ່ປະກອບມີ
group_name, host_node_name, process_num, program_name, ແລະ ທີ່ນີ້ (ໄດເລກະທໍລີຂອງ
supervisord config file).
ມາດຕະຖານ: %(program_name)s
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ຕົວເລກ
ຜູ້ຄຸມງານຈະເລີ່ມໂຄງການນີ້ຫຼາຍຄັ້ງຕາມທີ່ຕັ້ງຊື່ໂດຍ numprocs. ຫມາຍເຫດ
ວ່າຖ້າຕົວເລກ> 1, the process_name ການສະແດງອອກຕ້ອງປະກອບມີ %(process_num)s (ຫຼືໃດໆ
Python string expression ທີ່ຖືກຕ້ອງອື່ນໆທີ່ປະກອບມີ process_num) ພາຍໃນມັນ.
ມາດຕະຖານ: 1
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
numprocs_start
ຄ່າຊົດເຊີຍຈຳນວນເຕັມທີ່ໃຊ້ເພື່ອຄຳນວນຕົວເລກທີ່ ຕົວເລກ ເລີ່ມຕົ້ນ.
ມາດຕະຖານ: 0
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ບູລິມະສິດ
ບູລິມະສິດທີ່ກ່ຽວຂ້ອງຂອງໂຄງການໃນການເລີ່ມຕົ້ນແລະປິດຄໍາສັ່ງ. ຕ່ໍາກວ່າ
ບູລິມະສິດຊີ້ບອກບັນດາໂຄງການທີ່ເລີ່ມຕົ້ນທໍາອິດແລະປິດລົງສຸດທ້າຍໃນເວລາເລີ່ມຕົ້ນແລະເວລາໃດ
ຄໍາສັ່ງລວມຖືກນໍາໃຊ້ໃນລູກຄ້າຕ່າງໆ (ເຊັ່ນ: "ເລີ່ມຕົ້ນທັງຫມົດ"/"ຢຸດທັງຫມົດ"). ສູງກວ່າ
ບູລິມະສິດຊີ້ບອກບັນດາໂຄງການທີ່ເລີ່ມຕົ້ນສຸດທ້າຍ ແລະປິດລົງກ່ອນ.
ມາດຕະຖານ: 999
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ອໍໂຕ້
ຖ້າເປັນຈິງ, ໂປຣແກຣມນີ້ຈະເລີ່ມອັດຕະໂນມັດເມື່ອຜູ້ຄວບຄຸມເລີ່ມຕົ້ນ.
ມາດຕະຖານ: ຄວາມຈິງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
startsecs
ຈໍານວນທັງຫມົດຂອງວິນາທີທີ່ໂຄງການຈໍາເປັນຕ້ອງດໍາເນີນການຫຼັງຈາກການເລີ່ມຕົ້ນ
ພິຈາລະນາການເລີ່ມຕົ້ນສົບຜົນສໍາເລັດ (ການເຄື່ອນຍ້າຍຂະບວນການຈາກ ເລີ່ມຕົ້ນ ລັດກັບ
ແລ່ນ ລັດ). ຕັ້ງຄ່າ 0 ເພື່ອຊີ້ບອກວ່າໂຄງການບໍ່ ຈຳ ເປັນຕ້ອງແລ່ນຕໍ່ໄປ
ຈໍານວນເວລາໂດຍສະເພາະ.
ຫມາຍເຫດ:
ເຖິງແມ່ນວ່າຂະບວນການໃດນຶ່ງອອກມາດ້ວຍລະຫັດອອກ "ຄາດ" (ເບິ່ງ ລະຫັດອອກ), ການເລີ່ມຕົ້ນ
ຈະຍັງຖືວ່າເປັນຄວາມລົ້ມເຫຼວຖ້າຫາກວ່າຂະບວນການອອກໄວກວ່າ startsecs.
ມາດຕະຖານ: 1
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
startretries
ຈໍານວນຂອງຄວາມລົ້ມເຫຼວຂອງ serial ພະຍາຍາມນັ້ນ ຜູ້ຄຸມງານ ຈະອະນຸຍາດໃຫ້ໃນເວລາທີ່ພະຍາຍາມ
ເລີ່ມຕົ້ນໂຄງການກ່ອນທີ່ຈະໃຫ້ເຖິງແລະການວາງຂະບວນການເປັນ ໄຂມັນ ລັດ. ເບິ່ງ
process_states ສໍາລັບຄໍາອະທິບາຍຂອງ ໄຂມັນ ລັດ.
ມາດຕະຖານ: 3
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ປິດເປີດອັດຕະໂນມັດ
ລະບຸວ່າ ຜູ້ຄຸມງານ ຄວນເລີ່ມຂະບວນການຄືນໃໝ່ໂດຍອັດຕະໂນມັດ ຖ້າມັນອອກເມື່ອມັນຢູ່
ໃນ ແລ່ນ ລັດ. ອາດຈະເປັນຫນຶ່ງໃນ ທີ່ບໍ່ຖືກຕ້ອງ, unexpected, ຫຼື ທີ່ແທ້ຈິງທີ່ຢູ່ ຖ້າຫາກວ່າ ທີ່ບໍ່ຖືກຕ້ອງ, ຂະບວນການ
ຈະບໍ່ຖືກປິດເປີດໃໝ່ອັດຕະໂນມັດ. ຖ້າ unexpected, ຂະບວນການຈະໄດ້ຮັບການ restarted ໃນເວລາທີ່
ໂປຣແກມອອກດ້ວຍລະຫັດອອກທີ່ບໍ່ແມ່ນລະຫັດອອກອັນໜຶ່ງທີ່ກ່ຽວຂ້ອງກັບອັນນີ້
ການຕັ້ງຄ່າຂະບວນການ (ເບິ່ງ ລະຫັດອອກ) ຖ້າຫາກວ່າ ທີ່ແທ້ຈິງ, ຂະບວນການຈະບໍ່ມີເງື່ອນໄຂ
ຣີສະຕາດເມື່ອມັນອອກ, ໂດຍບໍ່ຄຳນຶງເຖິງລະຫັດອອກຂອງມັນ.
ຫມາຍເຫດ:
ປິດເປີດອັດຕະໂນມັດ ຄວບຄຸມບໍ່ວ່າຈະເປັນ ຜູ້ຄຸມງານ ຈະປິດເປີດໂປຣແກຣມຄືນໃໝ່ຖ້າມັນອອກ
ຫຼັງຈາກທີ່ມັນໄດ້ເລີ່ມຕົ້ນຢ່າງສໍາເລັດຜົນ (ຂະບວນການແມ່ນຢູ່ໃນ ແລ່ນ ລັດ).
ຜູ້ຄຸມງານ ມີກົນໄກການເລີ່ມຕົ້ນໃຫມ່ທີ່ແຕກຕ່າງກັນສໍາລັບເວລາທີ່ຂະບວນການກໍາລັງເລີ່ມຕົ້ນຂຶ້ນ
(ຂະບວນການແມ່ນຢູ່ໃນ ເລີ່ມຕົ້ນ ລັດ). ພະຍາຍາມອີກຄັ້ງໃນລະຫວ່າງການເລີ່ມຕົ້ນຂະບວນການ
ຄວບຄຸມໂດຍ startsecs ແລະ startretries.
ມາດຕະຖານ: ບໍ່ຄາດຄິດ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະຫັດອອກ
ບັນຊີລາຍຊື່ຂອງລະຫັດອອກ "ຄາດຫວັງ" ສໍາລັບໂຄງການນີ້ໃຊ້ກັບ ປິດເປີດອັດຕະໂນມັດທີ່ຢູ່ ຖ້າຫາກວ່າ
ປິດເປີດອັດຕະໂນມັດ ພາລາມິເຕີຖືກຕັ້ງຄ່າໃຫ້ unexpected, ແລະຂະບວນການອອກໄປໃນທາງອື່ນນອກຈາກ
ເປັນຜົນມາຈາກການຮ້ອງຂໍໃຫ້ຢຸດເຊົາການຄວບຄຸມ, ຜູ້ຄຸມງານ ຈະເລີ່ມຂະບວນການຄືນໃໝ່ຖ້າມັນ
ອອກດ້ວຍລະຫັດອອກທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນລາຍການນີ້.
ມາດຕະຖານ: 0,2
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ສັນຍານຢຸດ
ສັນຍານທີ່ໃຊ້ເພື່ອຂ້າໂປຣແກມ ເມື່ອມີການຮ້ອງຂໍຢຸດ. ນີ້ສາມາດເປັນຂອງຄໍາສັບໃດຫນຶ່ງ,
HUP, INT, QUIT, KILL, USR1, ຫຼື USR2.
ມາດຕະຖານ: ໄລຍະ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
stopwaitsecs
ຈຳນວນວິນາທີທີ່ຈະລໍຖ້າ OS ສົ່ງຄືນ SIGCHILD ຜູ້ຄຸມງານ ຫຼັງຈາກ
ໂຄງການໄດ້ຖືກສົ່ງສັນຍານຢຸດ. ຖ້າຈໍານວນວິນາທີນີ້ຜ່ານໄປກ່ອນ
ຜູ້ຄຸມງານ ໄດ້ຮັບ SIGCHILD ຈາກຂະບວນການ, ຜູ້ຄຸມງານ ຈະພະຍາຍາມຂ້າມັນ
ກັບ SIGKILL ສຸດທ້າຍ.
ມາດຕະຖານ: 10
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ກຸ່ມຢຸດ
ຖ້າເປັນຄວາມຈິງ, ທຸງເຮັດໃຫ້ຜູ້ຄຸມງານສົ່ງສັນຍານຢຸດໄປຫາກຸ່ມຂະບວນການທັງຫມົດ
ແລະຫມາຍຄວາມວ່າ ກຸ່ມຂ້າ ເປັນຄວາມຈິງ. ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບບັນດາໂຄງການ, ເຊັ່ນ Flask ໃນການດີບັກ
ຮູບແບບ, ທີ່ບໍ່ແຜ່ຂະຫຍາຍສັນຍານຢຸດໃຫ້ລູກຂອງເຂົາເຈົ້າ, ເຮັດໃຫ້ເຂົາເຈົ້າກໍາພ້າ.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0b1
ກຸ່ມຂ້າ
ຖ້າເປັນຄວາມຈິງ, ເມື່ອສົ່ງ SIGKILL ໄປຫາໂຄງການເພື່ອຢຸດມັນສົ່ງໄປຫາມັນ
ກຸ່ມຂະບວນການທັງຫມົດແທນທີ່ຈະ, ການດູແລຂອງເດັກນ້ອຍຂອງຕົນເຊັ່ນດຽວກັນ, ທີ່ເປັນປະໂຫຍດ eg
ໂປຣແກຣມ Python ໂດຍໃຊ້ multiprocessing.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0a11
ຜູ້ໃຊ້
ແນະ ນຳ ຜູ້ຄຸມງານ ເພື່ອໃຊ້ບັນຊີຜູ້ໃຊ້ UNIX ນີ້ແມ່ນບັນຊີທີ່ດໍາເນີນການ
ໂຄງການ. ຜູ້ໃຊ້ສາມາດປ່ຽນໄດ້ພຽງແຕ່ຖ້າ ຜູ້ຄຸມງານ ແມ່ນດໍາເນີນການເປັນຜູ້ໃຊ້ຮາກ. ຖ້າ
ຜູ້ຄຸມງານ ບໍ່ສາມາດປ່ຽນໄປຫາຜູ້ໃຊ້ທີ່ລະບຸໄວ້, ໂຄງການຈະບໍ່ຖືກເລີ່ມຕົ້ນ.
ຫມາຍເຫດ:
ຜູ້ໃຊ້ຈະຖືກປ່ຽນໂດຍໃຊ້ ສະສົມ ເທົ່ານັ້ນ. ນີ້ບໍ່ໄດ້ເລີ່ມຕົ້ນ shell ເຂົ້າສູ່ລະບົບແລະ
ບໍ່ປ່ຽນແປງຕົວແປສະພາບແວດລ້ອມເຊັ່ນ ຜູ້ໃຊ້ or ຫນ້າທໍາອິດ, ທະເລສາບ
subprocess_environment ສໍາລັບລາຍລະອຽດ.
ມາດຕະຖານ: ຢ່າປ່ຽນຜູ້ໃຊ້
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
redirect_stderr
ຖ້າເປັນຈິງ, ເຮັດໃຫ້ຜົນຜະລິດ stderr ຂະບວນການຖືກສົ່ງໄປຫາ ຜູ້ຄຸມງານ ສຸດ stdout ຂອງຕົນ
ຕົວອະທິບາຍໄຟລ໌ (ໃນຂໍ້ກໍານົດຂອງ UNIX shell, ນີ້ແມ່ນເທົ່າກັບການປະຕິບັດ /the/ໂຄງການ
2> & 1).
ຫມາຍເຫດ:
ບໍ່ຕັ້ງ redirect_stderr = true ໃນຫນຶ່ງ [ຜູ້ຟັງເຫດການ:x] ພາກ. ຜູ້ຟັງເຫດການ
ການນໍາໃຊ້ stdout ແລະ stdin ຕິດຕໍ່ສື່ສານກັບ ຜູ້ຄຸມງານທີ່ຢູ່ ຖ້າຫາກວ່າ stderr ຖືກປ່ຽນເສັ້ນທາງ,
ຜົນຜະລິດຈາກ stderr ຈະແຊກແຊງໂປຣໂຕຄໍ eventlistener.
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0, ແທນທີ່ 2.0's log_stdout ແລະ log_stderr
stdout_logfile
ເອົາຜົນຜະລິດ stdout ຂະບວນການໃນໄຟລ໌ນີ້ (ແລະຖ້າ redirect_stderr ເປັນຄວາມຈິງ, ວາງ
stderr ຜົນຜະລິດໃນໄຟລ໌ນີ້). ຖ້າ stdout_logfile ບໍ່ໄດ້ຕັ້ງ ຫຼືຕັ້ງເປັນ AUTO, ຜູ້ຄຸມງານ
ຈະເລືອກສະຖານທີ່ໄຟລ໌ໂດຍອັດຕະໂນມັດ. ຖ້າຕັ້ງເປັນ NONE, ຜູ້ຄຸມງານຈະ
ສ້າງບໍ່ມີໄຟລ໌ບັນທຶກ. AUTO ບັນທຶກໄຟລ໌ແລະການສໍາຮອງຂໍ້ມູນຂອງເຂົາເຈົ້າຈະຖືກລຶບຖິ້ມເມື່ອ ຜູ້ຄຸມງານ
ຣີສະຕາດ. ໄດ້ stdout_logfile ຄ່າສາມາດມີ Python string expressions ທີ່ຈະ
ປະເມີນທຽບກັບວັດຈະນານຸກົມທີ່ມີກະແຈ group_name, host_node_name,
process_num, program_name, ແລະ ທີ່ນີ້ (ໄດເລກະທໍລີຂອງໄຟລ໌ config ຜູ້ເບິ່ງແຍງ).
ຫມາຍເຫດ:
ມັນເປັນໄປບໍ່ໄດ້ສໍາລັບສອງຂະບວນການທີ່ຈະແບ່ງປັນໄຟລ໌ບັນທຶກດຽວ (stdout_logfile)
ເມື່ອການຫມຸນ (stdout_logfile_maxbytes) ຖືກເປີດໃຊ້. ນີ້ຈະສົ່ງຜົນໃຫ້ໄຟລ໌
ຖືກເສຍຫາຍ.
ມາດຕະຖານ: AUTO
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0, ແທນທີ່ 2.0's logfile
stdout_logfile_maxbytes
ຈໍານວນສູງສຸດຂອງ bytes ທີ່ອາດຈະຖືກບໍລິໂພກໂດຍ stdout_logfile ກ່ອນທີ່ມັນຈະຫມຸນ
(ຕົວຄູນຕໍ່ທ້າຍເຊັ່ນ "KB", "MB", ແລະ "GB" ສາມາດຖືກນໍາໃຊ້ໃນມູນຄ່າ). ຕັ້ງນີ້
ຄ່າເປັນ 0 ເພື່ອຊີ້ບອກຂະໜາດບັນທຶກບໍ່ຈຳກັດ.
ມາດຕະຖານ: 50MB
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0, ແທນທີ່ 2.0's logfile_maxbytes
stdout_logfile_backups
ຈໍານວນຂອງ stdout_logfile ສໍາຮອງຂໍ້ມູນເພື່ອຮັກສາຜົນໄດ້ຮັບຈາກບັນທຶກ stdout ຂະບວນການ
ການຫມຸນໄຟລ໌. ຖ້າຕັ້ງເປັນ 0, ຈະບໍ່ມີການສຳຮອງຂໍ້ມູນໃດໆ.
ມາດຕະຖານ: 10
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0, ແທນທີ່ 2.0's logfile_backups
stdout_capture_maxbytes
ຈໍານວນສູງສຸດຂອງ bytes ຂຽນເພື່ອເກັບກໍາ FIFO ໃນເວລາທີ່ຂະບວນການແມ່ນຢູ່ໃນ "stdout capture mode"
(ເບິ່ງ capture_mode). ຄວນເປັນຈຳນວນເຕັມ (ຕົວຄູນຕໍ່ທ້າຍເຊັ່ນ "KB", "MB" ແລະ "GB"
ສາມາດນໍາໃຊ້ໃນມູນຄ່າ). ຖ້າຄ່ານີ້ແມ່ນ 0, ໂໝດການບັນທຶກຂະບວນການຈະຖືກປິດ.
ມາດຕະຖານ: 0
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0, ແທນທີ່ 2.0's logfile_backups
stdout_events_enabled
ຖ້າເປັນຈິງ, ເຫດການ PROCESS_LOG_STDOUT ຈະຖືກປ່ອຍອອກມາເມື່ອຂະບວນການຂຽນໃສ່ມັນ
ຕົວອະທິບາຍໄຟລ໌ stdout. ເຫດການຈະຖືກປ່ອຍອອກມາເມື່ອຕົວອະທິບາຍໄຟລ໌ບໍ່ແມ່ນ
ໃນຮູບແບບການຈັບພາບໃນເວລາທີ່ໄດ້ຮັບຂໍ້ມູນ (ເບິ່ງ capture_mode).
ມາດຕະຖານ: 0
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0a7
stderr_logfile
ເອົາຜົນຜະລິດ stderr ຂະບວນການໃນໄຟລ໌ນີ້ເວັ້ນເສຍແຕ່ redirect_stderr ເປັນຄວາມຈິງ. ຍອມຮັບ
ປະເພດມູນຄ່າດຽວກັນກັບ stdout_logfile ແລະອາດມີ Python string expressions ດຽວກັນ.
ຫມາຍເຫດ:
ມັນເປັນໄປບໍ່ໄດ້ສໍາລັບສອງຂະບວນການທີ່ຈະແບ່ງປັນໄຟລ໌ບັນທຶກດຽວ (stderr_logfile)
ເມື່ອການຫມຸນ (stderr_logfile_maxbytes) ຖືກເປີດໃຊ້. ນີ້ຈະສົ່ງຜົນໃຫ້ໄຟລ໌
ຖືກເສຍຫາຍ.
ມາດຕະຖານ: AUTO
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
stderr_logfile_maxbytes
ຈໍານວນສູງສຸດຂອງ bytes ກ່ອນທີ່ຈະຫມຸນ logfile ສໍາລັບ stderr_logfile. ຍອມຮັບ
ປະເພດມູນຄ່າດຽວກັນກັບ stdout_logfile_maxbytes.
ມາດຕະຖານ: 50MB
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
stderr_logfile_backups
ຈໍານວນຂອງການສໍາຮອງຂໍ້ມູນທີ່ຈະຮັກສາປະມານຈາກຂະບວນການ stderr ການຫມຸນໄຟລ໌ບັນທຶກ.
ຖ້າຕັ້ງເປັນ 0, ຈະບໍ່ມີການສຳຮອງຂໍ້ມູນໃດໆ.
ມາດຕະຖານ: 10
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
stderr_capture_maxbytes
ຈໍານວນສູງສຸດຂອງ bytes ຂຽນເພື່ອເກັບກໍາ FIFO ໃນເວລາທີ່ຂະບວນການແມ່ນຢູ່ໃນ "stderr capture mode"
(ເບິ່ງ capture_mode). ຄວນເປັນຈຳນວນເຕັມ (ຕົວຄູນຕໍ່ທ້າຍເຊັ່ນ "KB", "MB" ແລະ "GB"
ສາມາດນໍາໃຊ້ໃນມູນຄ່າ). ຖ້າຄ່ານີ້ແມ່ນ 0, ໂໝດການບັນທຶກຂະບວນການຈະຖືກປິດ.
ມາດຕະຖານ: 0
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
stderr_events_enabled
ຖ້າເປັນຈິງ, ເຫດການ PROCESS_LOG_STDERR ຈະຖືກປ່ອຍອອກມາເມື່ອຂະບວນການຂຽນໃສ່ມັນ
ຕົວອະທິບາຍໄຟລ໌ stderr. ເຫດການຈະຖືກປ່ອຍອອກມາເມື່ອຕົວອະທິບາຍໄຟລ໌ບໍ່ແມ່ນ
ໃນຮູບແບບການຈັບພາບໃນເວລາທີ່ໄດ້ຮັບຂໍ້ມູນ (ເບິ່ງ capture_mode).
ມາດຕະຖານ: ບໍ່ຖືກຕ້ອງ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0a7
ສະພາບແວດລ້ອມ
ບັນຊີລາຍຊື່ຂອງຄູ່ຄີ/ມູນຄ່າໃນຮູບແບບ KEY="val",KEY2="val2" ທີ່ຈະຖືກຈັດໃສ່ໃນ
ສະພາບແວດລ້ອມຂະບວນການເດັກ. ສະຕຣິງສະພາບແວດລ້ອມອາດມີສະຕຣິງ Python
ການສະແດງອອກທີ່ຈະຖືກປະເມີນຕໍ່ກັບວັດຈະນານຸກົມທີ່ມີ group_name,
host_node_name, process_num, program_name, ແລະ ທີ່ນີ້ (ບັນຊີຂອງຜູ້ຄວບຄຸມ
config file). ຄວນອ້າງອີງຄ່າທີ່ມີຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກ (ຕົວຢ່າງ
KEY="val:123",KEY2="val,456"). ຖ້າບໍ່ດັ່ງນັ້ນ, ການອ້າງອີງຄ່າແມ່ນທາງເລືອກແຕ່
ແນະນໍາໃຫ້. ຫມາຍເຫດ ວ່າຂະບວນການຍ່ອຍຈະສືບທອດຕົວແປສະພາບແວດລ້ອມຂອງ
shell ໃຊ້ເພື່ອເລີ່ມຕົ້ນ "supervisord" ຍົກເວັ້ນສໍາລັບການ overridden ທີ່ນີ້. ເບິ່ງ
subprocess_vironment.
ມາດຕະຖານ: ບໍ່ມີສະພາບແວດລ້ອມພິເສດ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ລະບົບ
ເສັ້ນທາງໄຟລ໌ທີ່ເປັນຕົວແທນຂອງໄດເລກະທໍລີທີ່ ຜູ້ຄຸມງານ ຄວນ chdir ຊົ່ວຄາວ
ກ່ອນທີ່ຈະປະຕິບັດເດັກນ້ອຍ.
ມາດຕະຖານ: ບໍ່ມີ chdir (ສືບທອດຂອງຜູ້ຄຸມງານ)
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ໜ້າ ກາກ
ຕົວເລກແປດ (ຕົວຢ່າງ: 002, 022) ເປັນຕົວແທນຂອງ umask ຂອງຂະບວນການ.
ມາດຕະຖານ: ບໍ່ມີ umask ພິເສດ (ສືບທອດຂອງຜູ້ຄຸມງານ)
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
serverurl
URL ທີ່ຜ່ານໃນສະພາບແວດລ້ອມໄປສູ່ຂະບວນການຍ່ອຍເປັນ SUPERVISOR_SERVER_URL
(ເບິ່ງ supervisor.childutils) ເພື່ອອະນຸຍາດໃຫ້ຂະບວນການຍ່ອຍສາມາດຕິດຕໍ່ສື່ສານໄດ້ງ່າຍ
ເຊີບເວີ HTTP ພາຍໃນ. ຖ້າສະຫນອງໃຫ້, ມັນຄວນຈະມີ syntax ແລະໂຄງສ້າງດຽວກັນກັບ
[ຜູ້ຄຸມງານ] ທາງເລືອກພາກສ່ວນຂອງຊື່ດຽວກັນ. ຖ້າອັນນີ້ຖືກຕັ້ງເປັນ AUTO, ຫຼືບໍ່ໄດ້ຕັ້ງ,
ຜູ້ຄຸມງານຈະສ້າງ URL ຂອງເຊີບເວີໂດຍອັດຕະໂນມັດ, ໂດຍໃຫ້ຄວາມຕ້ອງການກັບເຄື່ອງແມ່ຂ່າຍ
ທີ່ຟັງຢູ່ໃນຊັອກເກັດໂດເມນ UNIX ຫຼາຍກວ່າຫນຶ່ງທີ່ຟັງຢູ່ໃນເຕົ້າຮັບອິນເຕີເນັດ.
ມາດຕະຖານ: ອັດຕະໂນມັດ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[ໂຄງການ:x] ສ່ວນ ຍົກຕົວຢ່າງ
[ໂຄງການ: cat]
ຄຳ ສັ່ງ =/bin/cat
process_name=%(program_name)s
numprocs=1
ໄດເລກະທໍລີ=/ tmp
umask=022
ບູລິມະສິດ = 999
autostart = ຄວາມຈິງ
autorestart=ບໍ່ຄາດຄິດ
startsecs=10
startretries=3
exitcodes=0,2
stopsignal=TERM
stopwaitsec=10
stopasgroup=false
killasgroup=false
user=chrism
redirect_stderr=false
stdout_logfile=/a/ເສັ້ນທາງ
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
stderr_logfile=/a/ເສັ້ນທາງ
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
ສະພາບແວດລ້ອມ=A="1",B="2"
serverurl=AUTO
[ລວມ] ສ່ວນ ການຕັ້ງຄ່າ
ໄດ້ supervisord.conf ໄຟລ໌ອາດມີພາກສ່ວນທີ່ມີຊື່ [ລວມ]. ຖ້າຫາກວ່າການຕັ້ງຄ່າ
ໄຟລ໌ປະກອບມີ [ລວມ] ພາກສ່ວນ, ມັນຕ້ອງມີລະຫັດດຽວທີ່ມີຊື່ວ່າ "ໄຟລ໌". ໄດ້
ຄ່າໃນລະຫັດນີ້ລະບຸໄຟລ໌ການຕັ້ງຄ່າອື່ນໆທີ່ຈະລວມຢູ່ໃນ
ການຕັ້ງຄ່າ
[ລວມ] ສ່ວນ ມູນຄ່າ
ໄຟ
ລຳດັບການແຍກຊ່ອງຫວ່າງຂອງໄຟລ໌ globs. ແຕ່ລະໄຟລ໌ glob ອາດຈະເປັນຢ່າງແທ້ຈິງຫຼືເປັນພີ່ນ້ອງກັນ.
ຖ້າໄຟລ໌ glob ແມ່ນພີ່ນ້ອງ, ມັນຖືວ່າເປັນພີ່ນ້ອງກັບສະຖານທີ່ຂອງ
ໄຟລ໌ການຕັ້ງຄ່າທີ່ປະກອບມີມັນ. A "glob" ແມ່ນຮູບແບບໄຟລ໌ທີ່ກົງກັບ a
ຮູບແບບທີ່ລະບຸໄວ້ຕາມກົດລະບຽບທີ່ໃຊ້ໂດຍ Unix shell. ບໍ່ມີການຂະຫຍາຍຕົວ tilde ແມ່ນ
ເຮັດໄດ້, ແຕ່ວ່າ *, ?, ແລະຂອບເຂດຕົວອັກສອນສະແດງອອກດ້ວຍ [] ຈະຖືກຈັບຄູ່ຢ່າງຖືກຕ້ອງ.
Recursive ປະກອບມີຈາກໄຟລ໌ທີ່ລວມມາແມ່ນບໍ່ສະຫນັບສະຫນູນ.
ມາດຕະຖານ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ (ຕ້ອງການ)
ທີ່ກໍານົດໄວ້: ແມ່ນແລ້ວ.
ແນະ ນຳ: 3.0
[ລວມ] ສ່ວນ ຍົກຕົວຢ່າງ
[ລວມ]
ໄຟລ໌ = /an/absolute/filename.conf /an/absolute/*.conf foo.conf config??.conf
[ກຸ່ມ:x] ສ່ວນ ການຕັ້ງຄ່າ
ມັນມັກຈະເປັນປະໂຫຍດທີ່ຈະຈັດກຸ່ມຂະບວນການ "homogeneous" (aka "programs") ຮ່ວມກັນເຂົ້າໄປໃນ a
ກຸ່ມຂະບວນການ "heterogeneous" ດັ່ງນັ້ນພວກເຂົາສາມາດຄວບຄຸມເປັນຫນ່ວຍງານຈາກ Supervisor's
ການໂຕ້ຕອບຕົວຄວບຄຸມຕ່າງໆ.
ເພື່ອຈັດວາງໂຄງການເຂົ້າໄປໃນກຸ່ມເພື່ອໃຫ້ທ່ານສາມາດປະຕິບັດໃຫ້ເຂົາເຈົ້າເປັນຫນ່ວຍງານ, ກໍານົດ a [ກຸ່ມ:x] ສ່ວນ
ໃນໄຟລ໌ການຕັ້ງຄ່າຂອງທ່ານ. ຄ່າສ່ວນຫົວຂອງກຸ່ມແມ່ນເປັນອົງປະກອບ. ມັນແມ່ນຄໍາສັບ
"ກຸ່ມ", ຕິດຕາມໂດຍກົງດ້ວຍຈໍ້າສອງເມັດ, ຫຼັງຈາກນັ້ນຊື່ກຸ່ມ. ຄ່າສ່ວນຫົວຂອງ [ກຸ່ມ: foo]
ອະທິບາຍກຸ່ມທີ່ມີຊື່ຂອງ "foo". ຊື່ແມ່ນໃຊ້ຢູ່ໃນຄໍາຮ້ອງສະຫມັກຂອງລູກຄ້າ
ທີ່ຄວບຄຸມຂະບວນການທີ່ຖືກສ້າງຂຶ້ນເປັນຜົນມາຈາກການຕັ້ງຄ່ານີ້. ມັນເປັນ
ຄວາມຜິດພາດໃນການສ້າງ a ກຸ່ມ ພາກສ່ວນທີ່ບໍ່ມີຊື່. ຊື່ຈະຕ້ອງບໍ່ປະກອບມີ a
ຕົວອັກສອນຈໍ້າສອງເມັດ ຫຼື ຕົວອັກສອນວົງເລັບ.
ສໍາລັບ [ກຸ່ມ:x], ຕ້ອງມີຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ [ໂຄງການ:x] ພາກສ່ວນອື່ນຢູ່ໃນຂອງທ່ານ
ໄຟລ໌ການຕັ້ງຄ່າ, ແລະກຸ່ມຕ້ອງອ້າງອີງໃສ່ພວກມັນໂດຍຊື່ໃນ ໂຄງການ ມູນຄ່າ.
ຖ້າກຸ່ມຂະບວນການ "homogeneous" (ສະແດງໂດຍພາກສ່ວນໂຄງການ) ແມ່ນຖືກຈັດໃສ່ໃນ a
ກຸ່ມ "heterogeneous" ຜ່ານ [ກຸ່ມ:x] ພາກສ່ວນ ໂຄງການ ເສັ້ນ, ກຸ່ມ homogeneous ທີ່
ແມ່ນ implied ໂດຍພາກໂຄງການຈະບໍ່ມີຢູ່ໃນ runtime ໃນ supervisor. ແທນທີ່ຈະ, ທັງຫມົດ
ຂະບວນການທີ່ເປັນຂອງແຕ່ລະກຸ່ມທີ່ເປັນເອກະລັກຈະໄດ້ຮັບການຈັດໃສ່ໃນ
ກຸ່ມ heterogeneous. ຕົວຢ່າງ, ໃຫ້ການຕັ້ງຄ່າກຸ່ມຕໍ່ໄປນີ້:
[ກຸ່ມ: foo]
programs=bar,baz
ບູລິມະສິດ = 999
ຕາມທີ່ກ່າວມາຂ້າງເທິງ, ໃນການເລີ່ມຕົ້ນຂອງຜູ້ເບິ່ງແຍງ, ໄດ້ ພາທະນາຍຄວາມ ແລະ ຖານ ກຸ່ມ homogeneous ຈະບໍ່
ມີຢູ່, ແລະຂະບວນການທີ່ຈະຢູ່ພາຍໃຕ້ພວກມັນໃນປັດຈຸບັນຈະຖືກຍ້າຍໄປຢູ່ໃນ ຟູ
ກຸ່ມ.
[ກຸ່ມ:x] ສ່ວນ ມູນຄ່າ
ໂຄງການ
ລາຍຊື່ໂປຣແກຣມທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. ໂຄງການທີ່ໄດ້ລະບຸໄວ້ເປັນສະມາຊິກ
ຂອງກຸ່ມ.
ມາດຕະຖານ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ (ຕ້ອງການ)
ທີ່ກໍານົດໄວ້: ແມ່ນແລ້ວ.
ແນະ ນຳ: 3.0
ບູລິມະສິດ
ຕົວເລກບູລິມະສິດປຽບທຽບກັບ a [ໂຄງການ:x] ຄ່າບູລິມະສິດມອບໝາຍໃຫ້ກຸ່ມ.
ມາດຕະຖານ: 999
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[ກຸ່ມ:x] ສ່ວນ ຍົກຕົວຢ່າງ
[ກຸ່ມ: foo]
programs=bar,baz
ບູລິມະສິດ = 999
[fcgi-ໂຄງການ:x] ສ່ວນ ການຕັ້ງຄ່າ
ຜູ້ຄຸມງານສາມາດຈັດການກຸ່ມຂອງ FastCGI ຂະບວນການທີ່ຟັງທັງຫມົດຢູ່ໃນເຕົ້າຮັບດຽວກັນ.
ຈົນກ່ວາໃນປັດຈຸບັນ, ຄວາມຍືດຫຍຸ່ນຂອງການປະຕິບັດສໍາລັບ FastCGI ໄດ້ຖືກຈໍາກັດ. ເພື່ອໃຫ້ໄດ້ຮັບຂະບວນການຢ່າງເຕັມທີ່
ການຄຸ້ມຄອງ, ທ່ານສາມາດນໍາໃຊ້ mod_fastcgi ພາຍໃຕ້ Apache ແຕ່ຫຼັງຈາກນັ້ນທ່ານໄດ້ຕິດຢູ່ກັບ Apache
ຮູບແບບທີ່ສອດຄ່ອງກັນທີ່ບໍ່ມີປະສິດຕິພາບຂອງຂະບວນການຫນຶ່ງຫຼືກະທູ້ຕໍ່ການເຊື່ອມຕໍ່. ນອກຈາກນັ້ນ
ຕ້ອງການຊັບພະຍາກອນ CPU ແລະຫນ່ວຍຄວາມຈໍາຫຼາຍ, ຂະບວນການ / ກະທູ້ຕໍ່ຮູບແບບການເຊື່ອມຕໍ່ສາມາດເປັນ
ອີ່ມຕົວຢ່າງໄວວາໂດຍຊັບພະຍາກອນຊ້າ, ປ້ອງກັນບໍ່ໃຫ້ຊັບພະຍາກອນອື່ນຖືກຮັບໃຊ້. ໃນ
ເພື່ອໃຊ້ປະໂຍດຈາກເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ທີ່ຂັບເຄື່ອນເຫດການໃຫມ່ເຊັ່ນ lighttpd ຫຼື nginx ເຊິ່ງ
ບໍ່ປະກອບມີຕົວຈັດການຂະບວນການທີ່ສ້າງຂຶ້ນ, ທ່ານຕ້ອງໃຊ້ສະຄິບເຊັ່ນ cgi-fcgi ຫຼື
spawn-fcgi. ເຫຼົ່ານີ້ສາມາດໃຊ້ຮ່ວມກັບຜູ້ຈັດການຂະບວນການເຊັ່ນ: ຜູ້ຄວບຄຸມ
ຫຼື daemontools ແຕ່ຕ້ອງການແຕ່ລະຂະບວນການລູກ FastCGI ເພື່ອຜູກມັດກັບເຕົ້າຮັບຂອງຕົນເອງ. ໄດ້
ຂໍ້ເສຍຂອງສິ່ງນີ້ແມ່ນ: ການຕັ້ງຄ່າຂອງເວັບໄຊຕ໌ທີ່ບໍ່ຈໍາເປັນສັບສົນ, unraceful
restarts, ແລະຫຼຸດຜ່ອນຄວາມທົນທານຕໍ່ຄວາມຜິດພາດ. ດ້ວຍເຕົ້າສຽບໜ້ອຍກວ່າເພື່ອກຳນົດຄ່າ, ເຊີບເວີເວັບ
ການຕັ້ງຄ່າມີຂະຫນາດນ້ອຍກວ່າຖ້າກຸ່ມຂອງຂະບວນການ FastCGI ສາມາດແບ່ງປັນຊັອກເກັດ. ແບ່ງປັນ
ເຕົ້າຮັບອະນຸຍາດໃຫ້ມີການເລີ່ມຕົ້ນໃຫມ່ຢ່າງສະຫງ່າງາມເພາະວ່າເຕົ້າຮັບຍັງຖືກຜູກມັດໂດຍຂະບວນການພໍ່ແມ່
ໃນຂະນະທີ່ຂະບວນການໃດໆຂອງເດັກກໍາລັງຖືກເລີ່ມຕົ້ນໃຫມ່. ສຸດທ້າຍ, ເຕົ້າຮັບທີ່ໃຊ້ຮ່ວມກັນແມ່ນມີຫຼາຍຂຶ້ນ
ມີຄວາມທົນທານຕໍ່ຄວາມຜິດເພາະວ່າຖ້າຂະບວນການທີ່ມອບໃຫ້ລົ້ມເຫລວ, ຂະບວນການອື່ນໆສາມາດສືບຕໍ່ໃຫ້ບໍລິການ
ການເຊື່ອມຕໍ່ຂາເຂົ້າ.
ດ້ວຍການສະຫນັບສະຫນູນ FastCGI ປະສົມປະສານ, Supervisor ໃຫ້ທ່ານທີ່ດີທີ່ສຸດຂອງທັງສອງໂລກ.
ທ່ານໄດ້ຮັບການຄຸ້ມຄອງຂະບວນການທີ່ມີຄຸນສົມບັດຢ່າງເຕັມທີ່ກັບກຸ່ມເຕົ້າຮັບການແບ່ງປັນຂະບວນການ FastCGI
ໂດຍບໍ່ມີການຜູກມັດກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ໂດຍສະເພາະ. ມັນເປັນການແຍກຄວາມກັງວົນທີ່ສະອາດ,
ອະນຸຍາດໃຫ້ເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ແລະຜູ້ຈັດການຂະບວນການແຕ່ລະຄົນເຮັດສິ່ງທີ່ພວກເຂົາເຮັດໄດ້ດີທີ່ສຸດ.
ຫມາຍເຫດ:
ຜູ້ຈັດການຊັອກເກັດໃນ Supervisor ໄດ້ຖືກພັດທະນາໃນເບື້ອງຕົ້ນເພື່ອສະຫນັບສະຫນູນຂະບວນການ FastCGI
ແຕ່ມັນບໍ່ຈໍາກັດກັບ FastCGI. ໂປໂຕຄອນອື່ນໆອາດຈະຖືກນໍາໃຊ້ເຊັ່ນດຽວກັນໂດຍບໍ່ມີພິເສດ
ການຕັ້ງຄ່າ. ໂປຣແກຣມໃດນຶ່ງທີ່ສາມາດເຂົ້າເຖິງຊັອກເກັດເປີດຈາກຕົວອະທິບາຍໄຟລ໌ (ຕົວຢ່າງ
ກັບ socket.fromfd ໃນ Python) ສາມາດໃຊ້ຕົວຈັດການຊັອກເກັດ. ຜູ້ຄຸມງານຈະ
ອັດຕະໂນມັດສ້າງເຕົ້າຮັບ, ຜູກມັດ, ແລະຟັງກ່ອນທີ່ຈະ forking ລູກທໍາອິດໃນ a
ກຸ່ມ. ເຕົ້າຮັບຈະຖືກສົ່ງຕໍ່ໄປຫາແຕ່ລະລູກດ້ວຍໝາຍເລກຕົວອະທິບາຍໄຟລ໌ 0 (ສູນ).
ເມື່ອລູກຄົນສຸດທ້າຍໃນກຸ່ມອອກໄປ, ຜູ້ຄຸມຈະປິດເຕົ້າຮັບ.
ທາງເລືອກທັງຫມົດທີ່ມີໃຫ້ [ໂຄງການ:x] ພາກສ່ວນຍັງໄດ້ຮັບການເຄົາລົບໂດຍ fcgi-ໂຄງການ
ພາກສ່ວນ.
[fcgi-ໂຄງການ:x] ສ່ວນ ມູນຄ່າ
[fcgi-ໂຄງການ:x] ພາກສ່ວນຕ່າງໆມີປຸ່ມອັນດຽວ [ໂຄງການ:x] ພາກສ່ວນບໍ່ມີ.
socket
ເຕົ້າຮັບ FastCGI ສໍາລັບໂຄງການນີ້, ບໍ່ວ່າຈະເປັນ TCP ຫຼືຊັອກເກັດໂດເມນ UNIX. ສໍາລັບເຕົ້າສຽບ TCP,
ໃຊ້ຮູບແບບນີ້: tcp://localhost:9002. ສຳລັບຊັອກເກັດໂດເມນຂອງ UNIX, ໃຫ້ໃຊ້
unix:///absolute/path/to/file.sock. ການສະແດງສະຕິງຖືກປະເມີນຕໍ່ກັບ a
ວັດຈະນານຸກົມທີ່ມີກະແຈ "program_name" ແລະ "ທີ່ນີ້" (ໄດເລກະທໍລີຂອງ
supervisord config file).
ມາດຕະຖານ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ.
ທີ່ກໍານົດໄວ້: ແມ່ນແລ້ວ.
ແນະ ນຳ: 3.0
socket_owner
ສໍາລັບຊັອກເກັດໂດເມນ UNIX, ພາລາມິເຕີນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດຜູ້ໃຊ້ແລະກຸ່ມສໍາລັບ
ເຕົ້າຮັບ FastCGI. ອາດຈະເປັນຊື່ຜູ້ໃຊ້ UNIX (ເຊັ່ນ chrism) ຫຼືຊື່ຜູ້ໃຊ້ UNIX ແລະກຸ່ມ
ແຍກອອກດ້ວຍຈໍ້າສອງເມັດ (ຕົວຢ່າງ: chrism:wheel).
ມາດຕະຖານ: ໃຊ້ຜູ້ໃຊ້ແລະກຸ່ມທີ່ກໍານົດໄວ້ສໍາລັບ fcgi-program
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
socket_mode
ສໍາລັບຊັອກເກັດໂດເມນຂອງ UNIX, ພາລາມິເຕີນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດຮູບແບບການອະນຸຍາດ.
ມາດຕະຖານ: 0700
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
ປຶກສາຫາລື [ໂຄງການ:x] ສ່ວນ ການຕັ້ງຄ່າ ສໍາລັບກະແຈອື່ນໆທີ່ອະນຸຍາດ, delta ຂໍ້ຈໍາກັດຂ້າງເທິງ
ແລະການເພີ່ມເຕີມ.
[fcgi-ໂຄງການ:x] ສ່ວນ ຍົກຕົວຢ່າງ
[fcgi-program:fcgiprogramname]
ຄໍາສັ່ງ =/usr/bin/example.fcgi
socket=unix:///var/run/supervisor/%(program_name)s.sock
socket_owner=ຄຣິສມ
socket_mode=0700
process_name=%(program_name)s_%(process_num)02d
numprocs=5
ໄດເລກະທໍລີ=/ tmp
umask=022
ບູລິມະສິດ = 999
autostart = ຄວາມຈິງ
autorestart=ບໍ່ຄາດຄິດ
startsecs=1
startretries=3
exitcodes=0,2
stopsignal=ອອກ
stopasgroup=false
killasgroup=false
stopwaitsec=10
user=chrism
redirect_stderr = true
stdout_logfile=/a/ເສັ້ນທາງ
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=false
stderr_logfile=/a/ເສັ້ນທາງ
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=false
ສະພາບແວດລ້ອມ=A="1",B="2"
serverurl=AUTO
[ຜູ້ຟັງເຫດການ:x] ສ່ວນ ການຕັ້ງຄ່າ
Supervisor ອະນຸຍາດໃຫ້ກຸ່ມຂະບວນການເປັນເອກະລັກສະເພາະ ("ສະນຸກເກີຟັງເຫດການ") ເປັນ
ກໍານົດພາຍໃນໄຟລ໌ການຕັ້ງຄ່າ. ສະນຸກເກີເຫຼົ່ານີ້ປະກອບດ້ວຍຂະບວນການທີ່ຫມາຍເຖິງ
ຮັບແລະຕອບສະຫນອງການແຈ້ງການເຫດການຈາກລະບົບເຫດການຂອງຜູ້ຄວບຄຸມ. ເບິ່ງເຫດການສໍາລັບ
ຄໍາອະທິບາຍກ່ຽວກັບວິທີການເຮັດວຽກຂອງເຫດການແລະວິທີການປະຕິບັດໂຄງການທີ່ສາມາດປະກາດໄດ້
ຜູ້ຟັງເຫດການ.
ໃຫ້ສັງເກດວ່າທຸກທາງເລືອກທີ່ມີໃຫ້ [ໂຄງການ:x] ພາກສ່ວນຕ່າງໆໄດ້ຖືກເຄົາລົບໂດຍຜູ້ຟັງເຫດການ
ພາກສ່ວນ ຍົກເວັ້ນ ສໍາລັບການ stdout_capture_maxbytes ແລະ stderr_capture_maxbytes (ຜູ້ຟັງເຫດການ
ບໍ່ສາມາດປ່ອຍເຫດການການສື່ສານຂະບວນການ, ເບິ່ງ capture_mode).
[ຜູ້ຟັງເຫດການ:x] ສ່ວນ ມູນຄ່າ
[ຜູ້ຟັງເຫດການ:x] ພາກສ່ວນມີປຸ່ມບໍ່ຫຼາຍປານໃດທີ່ [ໂຄງການ:x] ພາກສ່ວນບໍ່ມີ.
buffer_size
ຂະໜາດ buffer ແຖວເຫດການຂອງກຸ່ມຜູ້ຟັງເຫດການ. ເມື່ອ buffer ເຫດການຂອງກຸ່ມຜູ້ຟັງ
ແມ່ນ overflowed (ເຊັ່ນດຽວກັນສາມາດເກີດຂຶ້ນໃນເວລາທີ່ສະນຸກເກີຟັງເຫດການບໍ່ສາມາດຕິດຕາມທັງຫມົດຂອງ
ເຫດການທີ່ຖືກສົ່ງໄປຫາມັນ), ເຫດການເກົ່າແກ່ທີ່ສຸດໃນ buffer ແມ່ນຖືກຍົກເລີກ.
ກິດຈະກໍາ
ບັນຊີລາຍຊື່ທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ປະເພດເຫດການທີ່ຜູ້ຟັງນີ້ "ສົນໃຈ" ໃນ
ການຮັບແຈ້ງການສໍາລັບ (ເບິ່ງ event_types ສໍາລັບລາຍການຂອງຊື່ປະເພດເຫດການທີ່ຖືກຕ້ອງ).
result_handler
A pkg_resources entry ຈຸດ string ທີ່ແກ້ໄຂກັບ Python callable. ຄ່າເລີ່ມຕົ້ນ
ມູນຄ່າແມ່ນ supervisor.dispatchers:default_handler. ການລະບຸຜົນໄດ້ຮັບສຳຮອງ
handler ແມ່ນສິ່ງທີ່ແປກຫຼາຍທີ່ຈະຕ້ອງເຮັດ, ແລະດັ່ງນັ້ນ, ວິທີການສ້າງຫນຶ່ງແມ່ນ
ບໍ່ໄດ້ບັນທຶກ.
ປຶກສາຫາລື [ໂຄງການ:x] ສ່ວນ ການຕັ້ງຄ່າ ສໍາລັບກະແຈອື່ນໆທີ່ອະນຸຍາດ, delta ຂໍ້ຈໍາກັດຂ້າງເທິງ
ແລະການເພີ່ມເຕີມ.
[ຜູ້ຟັງເຫດການ:x] ສ່ວນ ຍົກຕົວຢ່າງ
[Eventlistener:theeventlistenername]
ຄໍາສັ່ງ =/bin/eventlistener
process_name=%(program_name)s_%(process_num)02d
numprocs=5
events=PROCESS_STATE
buffer_size=10
ໄດເລກະທໍລີ=/ tmp
umask=022
ບູລິມະສິດ=-1
autostart = ຄວາມຈິງ
autorestart=ບໍ່ຄາດຄິດ
startsecs=1
startretries=3
exitcodes=0,2
stopsignal=ອອກ
stopwaitsec=10
stopasgroup=false
killasgroup=false
user=chrism
redirect_stderr=false
stdout_logfile=/a/ເສັ້ນທາງ
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=false
stderr_logfile=/a/ເສັ້ນທາງ
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=false
ສະພາບແວດລ້ອມ=A="1",B="2"
serverurl=AUTO
[rpcinterface:x] ສ່ວນ ການຕັ້ງຄ່າ
ເພີ່ມຕື່ມ rpcinterface:x ການຕັ້ງຄ່າໃນໄຟລ໌ການຕັ້ງຄ່າແມ່ນເປັນປະໂຫຍດພຽງແຕ່ສໍາລັບຜູ້ທີ່
ຕ້ອງການຂະຫຍາຍຜູ້ຄຸມງານດ້ວຍການປະພຶດແບບກຳນົດເອງເພີ່ມເຕີມ.
ໃນໄຟລ໌ config ຕົວຢ່າງ, ມີສ່ວນຫນຶ່ງທີ່ມີຊື່ [rpcinterface: supervisor].
ໂດຍຄ່າເລີ່ມຕົ້ນມັນເບິ່ງຄືວ່າຕໍ່ໄປນີ້.
[rpcinterface: supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
ໄດ້ [rpcinterface: supervisor] ສ່ວນ ຕ້ອງ ຍັງຄົງຢູ່ໃນການຕັ້ງຄ່າສໍາລັບມາດຕະຖານ
ການຕັ້ງຜູ້ຄວບຄຸມເພື່ອເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຖ້າເຈົ້າບໍ່ຕ້ອງການໃຫ້ຜູ້ຄຸມງານເຮັດຫຍັງເລີຍ
ບໍ່ໄດ້ເຮັດແລ້ວອອກຈາກກ່ອງ, ນີ້ແມ່ນທັງຫມົດທີ່ທ່ານຈໍາເປັນຕ້ອງຮູ້ກ່ຽວກັບປະເພດນີ້
ສ່ວນ.
ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານຕ້ອງການເພີ່ມ namespaces ໃນການໂຕ້ຕອບ rpc ເພື່ອປັບແຕ່ງຜູ້ເບິ່ງແຍງ, ທ່ານ
ອາດຈະເພີ່ມຕື່ມ [rpcinterface:foo] ພາກສ່ວນ, ບ່ອນທີ່ "foo" ເປັນຕົວແທນຂອງ namespace ຂອງ
ການໂຕ້ຕອບ (ຈາກຮາກເວັບ), ແລະມູນຄ່າທີ່ມີຊື່ໂດຍ supervisor.rpcinterface_factory
ແມ່ນໂຮງງານທີ່ສາມາດໂທຫາໄດ້ເຊິ່ງຄວນຈະມີລາຍເຊັນຂອງຫນ້າທີ່ຍອມຮັບອັນດຽວ
ການໂຕ້ຖຽງຕໍາແຫນ່ງ ຜູ້ຄຸມງານ ແລະການໂຕ້ຖຽງຄໍາຫລັກຫຼາຍເທົ່າທີ່ຕ້ອງການເພື່ອປະຕິບັດ
ການຕັ້ງຄ່າ. ຄູ່ຄີ/ຄ່າພິເສດໃດນຶ່ງທີ່ກຳນົດໄວ້ພາຍໃນ [rpcinterface:x] ພາກສ່ວນຈະ
ຈະຖືກສົ່ງຜ່ານເປັນການໂຕ້ຖຽງຄໍາຫລັກໄປຫາໂຮງງານ.
ນີ້ແມ່ນຕົວຢ່າງຂອງຫນ້າທີ່ໂຮງງານຜະລິດ, ສ້າງຢູ່ໃນ __init__.py ໄຟລ໌ຂອງ Python
ຊຸດ my.package.
ຈາກ my.package.rpcinterface ນໍາເຂົ້າ AnotherRPCIInterface
def make_another_rpcinterface(supervisord, **config):
retries = int(config.get('retries', 0))
another_rpc_interface = ໂຕອື່ນ RPCInterface(ຜູ້ເບິ່ງແຍງ, ລອງໃໝ່)
ກັບຄືນ another_rpc_interface
ແລະພາກສ່ວນໃນໄຟລ໌ config ຫມາຍຄວາມວ່າຈະ configure ມັນ.
[rpcinterface: ອື່ນ]
supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
ລອງໃຫມ່ = 1
[rpcinterface:x] ສ່ວນ ມູນຄ່າ
supervisor.rpcinterface_factory
pkg_resources "ຈຸດເຂົ້າ" dotted ຊື່ກັບຫນ້າທີ່ໂຮງງານຜະລິດຂອງການໂຕ້ຕອບ RPC ຂອງທ່ານ.
ມາດຕະຖານ: ບໍ່ມີ
ທີ່ກໍານົດໄວ້: ບໍ່.
ແນະ ນຳ: 3.0
[rpcinterface:x] ສ່ວນ ຍົກຕົວຢ່າງ
[rpcinterface: ອື່ນ]
supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
ລອງໃຫມ່ = 1
ຂະບວນການຍ່ອຍ
ຜູ້ຄຸມງານຈຸດປະສົງຕົ້ນຕໍຂອງແມ່ນເພື່ອສ້າງແລະຈັດການຂະບວນການໂດຍອີງໃສ່ຂໍ້ມູນໃນຂອງຕົນ
ໄຟລ໌ການຕັ້ງຄ່າ. ມັນເຮັດສິ່ງນີ້ໂດຍການສ້າງຂະບວນການຍ່ອຍ. ແຕ່ລະຂະບວນການຍ່ອຍ spawned ໂດຍ
ຜູ້ຄຸມງານຖືກຄຸ້ມຄອງຕະຫຼອດຊີວິດໂດຍຜູ້ຄຸມງານ (ຜູ້ຄຸມງານ ເປັນ
ຂະບວນການແມ່ຂອງແຕ່ລະຂະບວນການທີ່ມັນສ້າງ). ເມື່ອເດັກເສຍຊີວິດ, ຜູ້ຄຸມງານຈະຖືກແຈ້ງໃຫ້ຊາບ
ການເສຍຊີວິດຂອງຕົນໂດຍຜ່ານ SIGCHLD ສັນຍານ, ແລະມັນປະຕິບັດການດໍາເນີນງານທີ່ເຫມາະສົມ.
Nondaemonizing of ຂະບວນການຍ່ອຍ
ບັນດາໂຄງການທີ່ຕ້ອງດໍາເນີນການພາຍໃຕ້ຜູ້ຄຸມງານບໍ່ຄວນເຮັດໃຫ້ຕົນເອງຖືກທໍາລາຍ. ແທນທີ່ຈະ, ພວກເຂົາ
ຄວນດໍາເນີນການຢູ່ເບື້ອງຫນ້າ. ເຂົາເຈົ້າບໍ່ຄວນແຍກອອກຈາກ terminal ຈາກທີ່ເຂົາເຈົ້າ
ແມ່ນໄດ້ເລີ່ມຕົ້ນ.
ວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະບອກໄດ້ວ່າໂຄງການຈະດໍາເນີນການຢູ່ໃນ foreground ແມ່ນເພື່ອດໍາເນີນການຄໍາສັ່ງນັ້ນ
ຮຽກຮ້ອງໃຫ້ໂຄງການຈາກການກະຕຸ້ນຫອຍ. ຖ້າຫາກວ່າມັນເຮັດໃຫ້ທ່ານຄວບຄຸມຂອງ terminal ກັບຄືນໄປບ່ອນ,
ແຕ່ສືບຕໍ່ແລ່ນ, ມັນແມ່ນ daemonizing ຕົວຂອງມັນເອງແລະນັ້ນເກືອບແນ່ນອນຈະຜິດພາດ
ວິທີການດໍາເນີນການພາຍໃຕ້ການຊີ້ນໍາ. ທ່ານຕ້ອງການດໍາເນີນການຄໍາສັ່ງທີ່ຈໍາເປັນຢ່າງຈິງຈັງ
ກົດ Ctrl-C ເພື່ອໃຫ້ໄດ້ຮັບການຄວບຄຸມຂອງ terminal ກັບຄືນໄປບ່ອນ. ຖ້າຫາກວ່າມັນເຮັດໃຫ້ທ່ານກະຕຸ້ນຫອຍກັບຄືນໄປບ່ອນ
ຫຼັງຈາກແລ່ນມັນໂດຍບໍ່ຈໍາເປັນຕ້ອງກົດ Ctrl-C, ມັນບໍ່ເປັນປະໂຫຍດພາຍໃຕ້ການຊີ້ນໍາ. ທັງໝົດ
ບັນດາໂຄງການມີທາງເລືອກທີ່ຈະດໍາເນີນການຢູ່ເບື້ອງຫນ້າແຕ່ບໍ່ມີ "ວິທີການມາດຕະຖານ" ທີ່ຈະເຮັດມັນ;
ທ່ານຈໍາເປັນຕ້ອງໄດ້ອ່ານເອກະສານສໍາລັບແຕ່ລະໂຄງການ.
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງໄຟລ໌ການຕັ້ງຄ່າທີ່ຮູ້ຈັກເພື່ອເລີ່ມຕົ້ນໂຄງການທົ່ວໄປໃນ
ໂໝດ "ດ້ານໜ້າ" ພາຍໃຕ້ຜູ້ຄຸມງານ.
ຕົວຢ່າງ of ໂຄງການ Configurations
ນີ້ແມ່ນບາງຕົວຢ່າງການຕັ້ງຄ່າໂປຣແກຣມ "ໂລກທີ່ແທ້ຈິງ":
Apache 2.2.6
[ໂຄງການ:apache2]
ຄໍາສັ່ງ =/path/to/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
redirect_stderr = true
ສອງ Zope ປີ 2.X instances ແລະ ຫນຶ່ງ ສູນ ເຄື່ອງແມ່ຂ່າຍ
[ໂຄງການ: zeo]
ຄໍາສັ່ງ =/path/to/runzeo
ບູລິມະສິດ = 1
[ໂຄງການ:zope1]
ຄໍາສັ່ງ =/path/to/instance/home/bin/runzope
ບູລິມະສິດ = 2
redirect_stderr = true
[ໂຄງການ:zope2]
command =/path/to/another/instance/home/bin/runzope
ບູລິມະສິດ = 2
redirect_stderr = true
ໄປສະນີ ປີ 8.X
[ໂຄງການ:postgres]
ຄໍາສັ່ງ =/path/to/postmaster
; ພວກເຮົາໃຊ້ສັນຍານປິດ "ໄວ" SIGINT
stopsignal=INT
redirect_stderr = true
OpenLDAP ຕົບ
[ໂຄງການ: slapd]
command=/path/to/slapd -f /path/to/slapd.conf -h ldap://0.0.0.0:8888
redirect_stderr = true
ອື່ນ ໆ ຕົວຢ່າງ
ຕົວຢ່າງອື່ນຂອງ shell script ທີ່ສາມາດໃຊ້ເພື່ອເລີ່ມຕົ້ນການບໍລິການພາຍໃຕ້ ຜູ້ຄຸມງານ ສາມາດເຮັດໄດ້
ພົບເຫັນຢູ່ http://thedjbway.b0llix.net/services.html. ຕົວຢ່າງເຫຼົ່ານີ້ແມ່ນຕົວຈິງສໍາລັບ
daemontools ແຕ່ສະຖານທີ່ແມ່ນຄືກັນສໍາລັບຜູ້ຄຸມງານ.
ການເກັບກໍາສູດສູດອື່ນສໍາລັບການເລີ່ມຕົ້ນໂຄງການຕ່າງໆໃນເບື້ອງຫນ້າແມ່ນມີຢູ່
ຈາກ http://smarden.org/runit/runscripts.html.
pidproxy ໂຄງການ
ຂະບວນການບາງຢ່າງ (ເຊັ່ນ: mysqld) ບໍ່ສົນໃຈສັນຍານທີ່ຖືກສົ່ງໄປຫາຂະບວນການຕົວຈິງທີ່ spawned ໂດຍ
ຜູ້ຄຸມງານ. ແທນທີ່ຈະ, ກະທູ້ / ຂະບວນການ "ພິເສດ" ຖືກສ້າງຂື້ນໂດຍໂຄງການປະເພດເຫຼົ່ານີ້
ເຊິ່ງຮັບຜິດຊອບໃນການຈັດການສັນຍານ. ນີ້ແມ່ນບັນຫາເພາະວ່າ ຜູ້ຄຸມງານ ສາມາດເຮັດໄດ້
ພຽງແຕ່ຂ້າຂະບວນການທີ່ມັນສ້າງເອງ. ຖ້າຂະບວນການສ້າງໂດຍ ຜູ້ຄຸມງານ ສ້າງ
ຂະບວນການຂອງເດັກນ້ອຍຂອງຕົນເອງ, ຜູ້ຄຸມງານ ບໍ່ສາມາດຂ້າພວກເຂົາ.
ໂຊກດີ, ປະເພດຂອງໂປລແກລມເຫຼົ່ານີ້ມັກຈະຂຽນ "pidfile" ເຊິ່ງປະກອບດ້ວຍ
ຂະບວນການ "ພິເສດ" PID, ແລະຫມາຍເຖິງການອ່ານແລະນໍາໃຊ້ເພື່ອຂ້າຂະບວນການ. ເປັນ
ການແກ້ໄຂສໍາລັບກໍລະນີນີ້, ພິເສດ pidproxy ໂຄງການສາມາດຈັດການການເລີ່ມຕົ້ນຂອງປະເພດເຫຼົ່ານີ້
ຂອງຂະບວນການ. ໄດ້ pidproxy ໂຄງການແມ່ນ shim ຂະຫນາດນ້ອຍທີ່ເລີ່ມຕົ້ນຂະບວນການ, ແລະຕາມ
ການຮັບສັນຍານ, ສົ່ງສັນຍານໄປຫາ pid ທີ່ສະຫນອງໃຫ້ຢູ່ໃນ pidfile. ຕົວຢ່າງ
ການເຂົ້າໂປຣແກຣມການຕັ້ງຄ່າສຳລັບໂປແກມທີ່ເປີດໃຊ້ pidproxy ແມ່ນສະໜອງໃຫ້ຂ້າງລຸ່ມນີ້.
[ໂຄງການ: mysql]
ຄໍາສັ່ງ =/path/to/pidproxy /path/to/pidfile /path/to/mysqld_safe
ໄດ້ pidproxy ໂຄງການແມ່ນໄດ້ໃສ່ໃນການຕັ້ງຄ່າຂອງທ່ານ $BINDIR ເມື່ອຜູ້ຄຸມງານຖືກຕິດຕັ້ງ
(ມັນເປັນ "script console").
ຂະບວນການຍ່ອຍ ສະພາບແວດລ້ອມ
ຂະບວນການຍ່ອຍຈະສືບທອດສະພາບແວດລ້ອມຂອງແກະທີ່ໃຊ້ເພື່ອເລີ່ມຕົ້ນການ ຜູ້ຄຸມງານ
ໂຄງການ. ຕົວແປສະພາບແວດລ້ອມຫຼາຍອັນຈະຖືກກໍານົດໂດຍ ຜູ້ຄຸມງານ ຕົວຂອງມັນເອງຢູ່ໃນເດັກນ້ອຍ
ສະພາບແວດລ້ອມ, ລວມທັງ SUPERVISOR_ENABLED (ທຸງຊີ້ບອກຂະບວນການແມ່ນຢູ່ພາຍໃຕ້
ການຄວບຄຸມຜູ້ດູແລ) SUPERVISOR_PROCESS_NAME (ຊື່ຂະບວນການ config-file-specified ສໍາລັບ
ຂະບວນການນີ້) ແລະ SUPERVISOR_GROUP_NAME (ຊື່ກຸ່ມຂະບວນການ config-file-specified ສໍາລັບ
ຂະບວນການເດັກນ້ອຍ).
ຕົວແປສະພາບແວດລ້ອມເຫຼົ່ານີ້ອາດຈະຖືກລົບລ້າງພາຍໃນ [ຜູ້ຄຸມງານ] ການຕັ້ງຄ່າພາກ
ທາງເລືອກທີ່ມີຊື່ ສະພາບແວດລ້ອມ (ໃຊ້ກັບຂະບວນການຍ່ອຍທັງໝົດ) ຫຼືພາຍໃນຂະບວນການຍ່ອຍ. [ໂຄງການ:x]
ສ່ວນ ສະພາບແວດລ້ອມ ທາງເລືອກ config (ໃຊ້ກັບຂະບວນການຍ່ອຍທີ່ລະບຸໄວ້ພາຍໃນ
[ໂຄງການ:x] ພາກ). ການຕັ້ງຄ່າ "ສະພາບແວດລ້ອມ" ເຫຼົ່ານີ້ແມ່ນເພີ່ມເຕີມ. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ແຕ່ລະຄົນ
ສະພາບແວດລ້ອມຂອງຂະບວນການຍ່ອຍຈະປະກອບດ້ວຍ:
ຕົວປ່ຽນສະພາບແວດລ້ອມທີ່ກໍານົດໄວ້ພາຍໃນແກະໃຊ້ເພື່ອເລີ່ມຕົ້ນການຄວບຄຸມ ...
... added-to/overridden-by ...
... ໄດ້ ສະພາບແວດລ້ອມ ຕົວແປ ທີ່ກໍານົດໄວ້ ພາຍໃນ ໄດ້ ສະພາບແວດລ້ອມ ທົ່ວໂລກ
ທາງເລືອກ config ...
... added-to/overridden-by ...
... ຜູ້ຄຸມງານສະເພາະ ສະພາບແວດລ້ອມ ຕົວແປ
(SUPERVISOR_ENABLED, SUPERVISOR_PROCESS_NAME, SUPERVISOR_GROUP_NAME)..
... added-to/overridden-by ...
... ໄດ້ ສະພາບແວດລ້ອມ ຕົວແປ ທີ່ກໍານົດໄວ້ ພາຍໃນ ໄດ້ ຕໍ່ຂະບວນການ
"ສະພາບແວດລ້ອມ" ທາງເລືອກການຕັ້ງຄ່າ.
ບໍ່ມີ shell ຖືກປະຕິບັດໂດຍ ຜູ້ຄຸມງານ ເມື່ອມັນແລ່ນຂະບວນການຍ່ອຍ, ດັ່ງນັ້ນຕົວແປສະພາບແວດລ້ອມ
ເຊັ່ນວ່າ ຜູ້ໃຊ້, PATH, ຫນ້າທໍາອິດ, SHELL, LOGNAME, ແລະອື່ນໆແມ່ນບໍ່ມີການປ່ຽນແປງຈາກຄ່າເລີ່ມຕົ້ນຂອງເຂົາເຈົ້າຫຼື
ການມອບໝາຍຄືນໃໝ່. ນີ້ແມ່ນສິ່ງສໍາຄັນໂດຍສະເພາະທີ່ຈະສັງເກດໃນເວລາທີ່ທ່ານກໍາລັງແລ່ນ a
ໂຄງການຈາກ a ຜູ້ຄຸມງານ ດໍາເນີນການເປັນຮາກທີ່ມີ a user= stanza ໃນການຕັ້ງຄ່າ. ບໍ່ມັກ
cron, ຜູ້ຄຸມງານ ບໍ່ໄດ້ພະຍາຍາມອັນສູງສົ່ງແລະ override "ພື້ນຖານ" ສະພາບແວດລ້ອມ
ຕົວແປເຊັ່ນ ຜູ້ໃຊ້, PATH, ຫນ້າທໍາອິດ, ແລະ LOGNAME ເມື່ອມັນປະຕິບັດ setuid ກັບຜູ້ໃຊ້ທີ່ກໍານົດ
ພາຍໃນ user= ທາງເລືອກການຕັ້ງຄ່າໂຄງການ. ຖ້າທ່ານຕ້ອງການກໍານົດຕົວແປສະພາບແວດລ້ອມສໍາລັບ a
ໂຄງການສະເພາະທີ່ບໍ່ດັ່ງນັ້ນອາດຈະໄດ້ຮັບການກໍານົດໂດຍການຮຽກຮ້ອງໃຫ້ shell ສໍາລັບການສະເພາະໃດຫນຶ່ງ
ຜູ້ໃຊ້, ທ່ານຈະຕ້ອງເຮັດມັນຢ່າງຊັດເຈນພາຍໃນ ສະພາບແວດລ້ອມ = ທາງເລືອກການຕັ້ງຄ່າໂຄງການ. ຕົວຢ່າງ
ການຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມເຫຼົ່ານີ້ແມ່ນດັ່ງລຸ່ມນີ້.
[ໂຄງການ:apache2]
command=/home/chrism/bin/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
user=chrism
environment=HOME="/home/chrism", USER="chrism"
ຂະບວນການ ລັດຖະບານ
ຂະບວນການທີ່ຄວບຄຸມໂດຍຜູ້ຄຸມງານຈະຢູ່ໃນໜຶ່ງໃນລັດລຸ່ມນີ້ໃນທຸກເວລາ.
ທ່ານອາດຈະເຫັນຊື່ຂອງລັດເຫຼົ່ານີ້ຢູ່ໃນອົງປະກອບການໂຕ້ຕອບຜູ້ໃຊ້ຕ່າງໆໃນລູກຄ້າ.
STOPPED (0)
ຂະບວນການດັ່ງກ່າວໄດ້ຖືກຢຸດເຊົາຍ້ອນການຮ້ອງຂໍຢຸດຫຼືບໍ່ເຄີຍໄດ້ຮັບການເລີ່ມຕົ້ນ.
ເລີ່ມຕົ້ນ (10)
ຂະບວນການແມ່ນເລີ່ມຕົ້ນເນື່ອງຈາກການຮ້ອງຂໍເລີ່ມຕົ້ນ.
ແລ່ນ (20)
ຂະບວນການແມ່ນແລ່ນ.
ກັບຄືນ (30)
ຂະບວນການເຂົ້າໄປໃນ ເລີ່ມຕົ້ນ ສະຖານະແຕ່ຫຼັງຈາກນັ້ນໄດ້ອອກໄປໄວເກີນໄປທີ່ຈະຍ້າຍໄປ
ໄດ້ ແລ່ນ ລັດ.
ຢຸດເຊົາ (40)
ຂະບວນການກໍາລັງຢຸດເນື່ອງຈາກການຮ້ອງຂໍຢຸດ.
ອອກແລ້ວ (100)
ຂະບວນການດັ່ງກ່າວໄດ້ອອກຈາກ ແລ່ນ ລັດ (ຄາດຫວັງຫຼືບໍ່ຄາດຄິດ).
ໄຂມັນ (200)
ຂະບວນການດັ່ງກ່າວບໍ່ສາມາດເລີ່ມຕົ້ນໄດ້ຢ່າງສໍາເລັດຜົນ.
ບໍ່ຮູ້ (1000)
ຂະບວນການແມ່ນຢູ່ໃນສະຖານະທີ່ບໍ່ຮູ້ຈັກ (ຜູ້ຄຸມງານ ການຂຽນໂປຣແກຣມຜິດພາດ).
ແຕ່ລະຂະບວນການທີ່ດໍາເນີນພາຍໃຕ້ຜູ້ຄຸມງານມີຄວາມຄືບຫນ້າໂດຍຜ່ານລັດເຫຼົ່ານີ້ຕາມຕໍ່ໄປນີ້
ເສັ້ນສະແດງເສັ້ນ.
[ຮູບພາບ: Subprocess State Transition Graph] [image] Subprocess State Transition
Graph.UNINDENT
ຂະບວນການແມ່ນຢູ່ໃນ STOPPED ລັດຖ້າຫາກວ່າມັນໄດ້ຖືກຢຸດເຊົາການບໍລິຫານຫຼືຖ້າຫາກວ່າມັນມີ
ບໍ່ເຄີຍເລີ່ມຕົ້ນ.
ເມື່ອຂະບວນການຣີສະຕາດອັດຕະໂນມັດແມ່ນຢູ່ໃນ ກັບຄືນ ລັດ, ມັນຈະເປັນອັດຕະໂນມັດ
restarted ໂດຍ ຜູ້ຄຸມງານ. ມັນຈະປ່ຽນລະຫວ່າງ ເລີ່ມຕົ້ນ ແລະ ກັບຄືນ ລັດຈົນກ່ວາມັນ
ກາຍເປັນຫຼັກຖານວ່າມັນບໍ່ສາມາດເລີ່ມຕົ້ນໄດ້ເພາະວ່າຈໍານວນຂອງ startretries ມີ
ເກີນສູງສຸດ, ໃນຈຸດທີ່ມັນຈະຫັນໄປສູ່ ໄຂມັນ ລັດ. ແຕ່ລະເລີ່ມຕົ້ນ
ພະຍາຍາມອີກຄັ້ງຈະໃຊ້ເວລາຫຼາຍເທື່ອ.
ໃນເວລາທີ່ຂະບວນການແມ່ນຢູ່ໃນ ອອກແລ້ວ ລັດ, ມັນຈະປິດເປີດອັດຕະໂນມັດ:
·ບໍ່ເຄີຍຖ້າຫາກວ່າມັນ ປິດເປີດອັດຕະໂນມັດ ພາລາມິເຕີຖືກຕັ້ງຄ່າໃຫ້ ທີ່ບໍ່ຖືກຕ້ອງ.
· ບໍ່ມີເງື່ອນໄຂຖ້າມັນ ປິດເປີດອັດຕະໂນມັດ ພາລາມິເຕີຖືກຕັ້ງຄ່າໃຫ້ ທີ່ແທ້ຈິງ.
·ເງື່ອນໄຂຖ້າຫາກວ່າມັນ ປິດເປີດອັດຕະໂນມັດ ພາລາມິເຕີຖືກຕັ້ງຄ່າໃຫ້ unexpected. ຖ້າຫາກວ່າມັນອອກດ້ວຍ
ລະຫັດອອກທີ່ບໍ່ກົງກັບໜຶ່ງໃນລະຫັດອອກທີ່ກຳນົດໄວ້ໃນ ລະຫັດອອກ
ພາລາມິເຕີການຕັ້ງຄ່າສໍາລັບຂະບວນການ, ມັນຈະຖືກເລີ່ມຕົ້ນໃຫມ່.
ຂະບວນການປ່ຽນໄປໂດຍອັດຕະໂນມັດຈາກ ອອກແລ້ວ to ແລ່ນ ເປັນຜົນມາຈາກການກໍາຫນົດຄ່າ
ເພື່ອເລີ່ມຕົ້ນໃຫມ່ອັດຕະໂນມັດຕາມເງື່ອນໄຂຫຼືບໍ່ມີເງື່ອນໄຂ. ຈໍານວນຂອງການຫັນປ່ຽນລະຫວ່າງ
ແລ່ນ ແລະ ອອກແລ້ວ ບໍ່ຈໍາກັດໃນທາງໃດກໍ່ຕາມ: ມັນເປັນໄປໄດ້ທີ່ຈະສ້າງການຕັ້ງຄ່າ
ທີ່ restarts ຂະບວນການອອກໃຫມ່ຢ່າງບໍ່ຢຸດຢັ້ງ. ນີ້ແມ່ນຄຸນສົມບັດ, ບໍ່ແມ່ນແມງໄມ້.
ຂະບວນການຣີສະຕາດອັດຕະໂນມັດຈະບໍ່ຖືກເປີດຄືນໃໝ່ໂດຍອັດຕະໂນມັດ ຖ້າມັນຈົບລົງໃນ ໄຂມັນ
ສະຖານະ (ມັນຕ້ອງໄດ້ຮັບການເລີ່ມຕົ້ນໃຫມ່ດ້ວຍຕົນເອງຈາກສະຖານະນີ້).
ຂະບວນການຫັນເປັນ ຢຸດເຊົາ ລັດຜ່ານຄໍາຮ້ອງຂໍຢຸດການບໍລິຫານ, ແລະຈະ
ຫຼັງຈາກນັ້ນ, ສິ້ນສຸດໃນ STOPPED ລັດ.
ຂະບວນການທີ່ບໍ່ສາມາດຢຸດເຊົາຢ່າງສໍາເລັດຜົນຈະຢູ່ໃນ ຢຸດເຊົາ ລັດຕະຫຼອດໄປ.
ສະຖານະການນີ້ບໍ່ຄວນບັນລຸໃນລະຫວ່າງການປະຕິບັດງານປົກກະຕິຍ້ອນວ່າມັນຫມາຍຄວາມວ່າ
ຂະບວນການບໍ່ໄດ້ຕອບສະຫນອງຂັ້ນສຸດທ້າຍ SIGKILL ສັນຍານຖືກສົ່ງໄປຫາມັນໂດຍຜູ້ຄຸມງານ, ເຊິ່ງແມ່ນ
"ເປັນໄປບໍ່ໄດ້" ພາຍໃຕ້ UNIX.
ການຫັນປ່ຽນຂອງລັດທີ່ຮຽກຮ້ອງໃຫ້ມີການກະ ທຳ ຂອງຜູ້ໃຊ້ສະ ເໝີ ເພື່ອຮຽກຮ້ອງແມ່ນເຫຼົ່ານີ້:
ໄຂມັນ -> ເລີ່ມຕົ້ນ
ແລ່ນ -> ຢຸດເຊົາ
ການຫັນປ່ຽນຂອງລັດທີ່ປົກກະຕິ, ແຕ່ບໍ່ແມ່ນສະເຫມີໄປ, ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຂອງຜູ້ໃຊ້ເພື່ອຮຽກຮ້ອງແມ່ນ
ເຫຼົ່ານີ້, ມີຂໍ້ຍົກເວັ້ນທີ່ບັນທຶກໄວ້:
STOPPED -> ເລີ່ມຕົ້ນ (ຍົກເວັ້ນແຕ່ໃນການເລີ່ມຕົ້ນການຄວບຄຸມຖ້າຫາກວ່າຂະບວນການໄດ້ຖືກຕັ້ງຄ່າໃຫ້ອັດຕະໂນມັດ)
ອອກແລ້ວ -> ເລີ່ມຕົ້ນ (ຍົກເວັ້ນຫາກຂະບວນການຖືກຕັ້ງຄ່າໃຫ້ປິດເປີດອັດຕະໂນມັດ)
ການຫັນປ່ຽນຂອງລັດອື່ນໆທັງໝົດແມ່ນຖືກຈັດການໂດຍຜູ້ເບິ່ງແຍງອັດຕະໂນມັດ.
ການຕັດໄມ້ທ່ອນ
ຫນຶ່ງໃນວຽກງານຕົ້ນຕໍທີ່ ຜູ້ຄຸມງານ ປະຕິບັດແມ່ນການຕັດໄມ້. ຜູ້ຄຸມງານ ບັນທຶກການເຄື່ອນໄຫວ
ບັນທຶກລາຍລະອຽດສິ່ງທີ່ມັນເຮັດໃນຂະນະທີ່ມັນແລ່ນ. ມັນຍັງບັນທຶກຂະບວນການເດັກ stdout ແລະ stderr
ສົ່ງອອກໄປຍັງໄຟລ໌ອື່ນໆຖ້າຫາກວ່າ configured ໃຫ້ເຮັດແນວນັ້ນ.
ກິດຈະກໍາ ຕົວເຊັນເຂົ້າ
ບັນທຶກກິດຈະກໍາແມ່ນບ່ອນທີ່ ຜູ້ຄຸມງານ ບັນທຶກຂໍ້ຄວາມກ່ຽວກັບສຸຂະພາບຂອງຕົນເອງ, ຂອງມັນ
subprocess' ການປ່ຽນແປງສະຖານະ, ຂໍ້ຄວາມໃດໆທີ່ເປັນຜົນມາຈາກເຫດການ, ແລະ debug ແລະ
ຂໍ້ຄວາມຂໍ້ມູນຂ່າວສານ. ເສັ້ນທາງໄປຫາບັນທຶກກິດຈະກໍາແມ່ນຖືກກໍານົດໂດຍຜ່ານ logfile
ຕົວກໍານົດການໃນ [ຜູ້ຄຸມງານ] ພາກສ່ວນຂອງໄຟລ໌ການຕັ້ງຄ່າ, ເລີ່ມຕົ້ນເປັນ
$CWD/supervisord.log. ຕົວຢ່າງການເຄື່ອນໄຫວບັນທຶກການຈະລາຈອນແມ່ນສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້. ບາງ
ສາຍໄດ້ຖືກແຍກເພື່ອໃຫ້ເຫມາະກັບຫນ້າຈໍທີ່ດີກວ່າ.
ຕົວຢ່າງ ກິດຈະກໍາ ຕົວເຊັນເຂົ້າ ຜົນຜະລິດ
2007-09-08 14:43:22,886 DEBG 127.0.0.1:Medusa (V1.11) ເລີ່ມຕົ້ນ Sat Sep 8 14:43:22 2007
ຊື່ເຈົ້າພາບ: kingfish
ພອດ: 9001
2007-09-08 14:43:22,961 ອັດຕາແລກປ່ຽນ INFO RPC interface 'ຜູ້ຄຸມງານ' ເລີ່ມຕົ້ນ
2007-09-08 14:43:22,961 CRIT ແລ່ນໂດຍບໍ່ມີການກວດສອບ HTTP ໃດໆ.
2007-09-08 14:43:22,962 ຂໍ້ມູນຜູ້ເບິ່ງແຍງລະບົບເລີ່ມຕົ້ນດ້ວຍ pid 27347
2007-09-08 14:43:23,965 ຄ.ພ.
2007-09-08 14:43:23,970 ມ.
2007-09-08 14:43:23,990 ມ.
2007-09-08 14:43:24,059 DEBG 'listener_00' stderr ຜົນຜະລິດ:
/users/chrism/projects/supervisor/supervisor2/dev-sandbox/bin/python:
ບໍ່ສາມາດເປີດໄຟລ໌ '/Users/chrism/projects/supervisor/supervisor2/src/supervisor/scripts/osx_eventgen_listener.py':
[Errno 2] ບໍ່ມີໄຟລ໌ ຫຼືໄດເລກະທໍລີດັ່ງກ່າວ
2007-09-08 14:43:24,060 DEBG fd 7 ປິດ, ຢຸດການຕິດຕາມ
(stdout)>
2007-09-08 14:43:24,060 INFO ອອກຈາກ: listener_00 (ອອກຈາກສະຖານະ 2; ບໍ່ໄດ້ຄາດຫວັງ)
2007-09-08 14:43:24,061 DEBG ໄດ້ຮັບ SIGCHLD ຊີ້ບອກວ່າເດັກເຊົາ.
ບັນທຶກກິດຈະກໍາ "ລະດັບ" ຖືກຕັ້ງຄ່າໃນໄຟລ໌ config ຜ່ານ loglevel ພາລາມິເຕີໃນ
ໄດ້ [ຜູ້ຄຸມງານ] ສ່ວນໄຟລ໌ ini. ເມື່ອໃດ loglevel ຖືກກໍານົດ, ຂໍ້ຄວາມທີ່ລະບຸໄວ້
ບູລິມະສິດ, ບວກກັບຜູ້ທີ່ມີບູລິມະສິດສູງກວ່ານັ້ນຖືກບັນທຶກເຂົ້າໃນບັນທຶກການເຄື່ອນໄຫວ. ສໍາລັບ
ຍົກຕົວຢ່າງ, if loglevel is ຄວາມຜິດພາດ, ຂໍ້ຄວາມຂອງ ຄວາມຜິດພາດ ແລະ ສໍາຄັນ ບູລິມະສິດຈະຖືກບັນທຶກ.
ຢ່າງໃດກໍຕາມ, ຖ້າ loglevel ແມ່ນ ເຕືອນ, ຂໍ້ຄວາມຂອງ ເຕືອນ, ຄວາມຜິດພາດ, ແລະ ສໍາຄັນ ຈະຖືກບັນທຶກ.
ກິດຈະກໍາ ຕົວເຊັນເຂົ້າ ລະດັບ
ຕາຕະລາງຂ້າງລຸ່ມນີ້ອະທິບາຍເຖິງລະດັບການບັນທຶກໃນລາຍລະອຽດເພີ່ມເຕີມ, ຈັດລໍາດັບຄວາມສໍາຄັນສູງສຸດ
ຕໍ່າສຸດ. "Config File Value" ແມ່ນສະຕຣິງທີ່ສະໜອງໃຫ້ loglevel ພາລາມິເຕີໃນ
ໄດ້ [ຜູ້ຄຸມງານ] ພາກສ່ວນຂອງໄຟລ໌ການຕັ້ງຄ່າແລະ "Output Code" ແມ່ນລະຫັດທີ່
ປາກົດຢູ່ໃນເສັ້ນຜົນຜະລິດບັນທຶກກິດຈະກໍາ.
┌─────────────────── ┬─────────────────────────── ───────────┐
│Config File Value │ Output Code │ Description │
├──────────────────────────────────────────── ────────────┤
│ສຳຄັນ │ CRIT │ ຂໍ້ຄວາມທີ່ຊີ້ບອກເຖິງ │
│ │ │ ເງື່ອນໄຂທີ່ຕ້ອງການ │
│ │ │ ຜູ້ໃຊ້ທັນທີ │
│ │ │ ເອົາໃຈໃສ່, ຜູ້ດູແລ │
│ │ │ ການປ່ຽນແປງລັດ, ຫຼື │
│ │ │ ຜິດພາດໃນຜູ້ຄຸມ │
│ │ │ ຕົວຂອງມັນເອງ. │
├──────────────────────────────────────────── ────────────┤
│ຂໍ້ຜິດພາດ │ ERRO │ ຂໍ້ຄວາມທີ່ຊີ້ບອກເຖິງ │
│ │ │ ອາດຈະລະເລີຍ │
│ │ │ ສະພາບຄວາມຜິດພາດ (ເຊັ່ນ: │
│ │ │ ບໍ່ສາມາດລ້າງບັນທຶກ │
│ │ │ ໄດເລກະທໍລີ). │
├──────────────────────────────────────────── ────────────┤
│ ເຕືອນ │ WARN │ ຂໍ້ຄວາມທີ່ຊີ້ບອກ │
│ │ │ ສະພາບຜິດປົກກະຕິ │
│ │ │ ເຊິ່ງບໍ່ແມ່ນຄວາມຜິດພາດ. │
├──────────────────────────────────────────── ────────────┤
│ຂໍ້ມູນ │ ຂໍ້ມູນ │ ຂໍ້ມູນປົກກະຕິ │
│ │ │ ຜົນຜະລິດ. ນີ້ແມ່ນ │
│ │ │ ລະດັບບັນທຶກເລີ່ມຕົ້ນຖ້າ │
│ │ │ ບໍ່ມີຢ່າງຈະແຈ້ງ │
│ │ │ ຕັ້ງຄ່າແລ້ວ. │
├──────────────────────────────────────────── ────────────┤
│debug │ DEBG │ ຂໍ້ຄວາມທີ່ເປັນປະໂຫຍດສໍາລັບ │
│ │ │ ຜູ້ໃຊ້ພະຍາຍາມດີບັກ │
│ │ │ ການຕັ້ງຄ່າຂະບວນການ │
│ │ │ ແລະ ການສື່ສານ │
│ │ │ ພຶດຕິກໍາ (ຂະບວນການ │
│ │ │ ຜົນຜະລິດ, ສະຖານະຜູ້ຟັງ │
│ │ │ ການປ່ຽນແປງ, ເຫດການ │
│ │ │ ການແຈ້ງເຕືອນ). │
├──────────────────────────────────────────── ────────────┤
│trace │ TRAC │ ຂໍ້ຄວາມທີ່ເປັນປະໂຫຍດສໍາລັບ │
│ │ │ ນັກພັດທະນາພະຍາຍາມ │
│ │ │ debug supervisor │
│ │ │ ປລັກອິນ, ແລະຂໍ້ມູນ │
│ │ │ ກ່ຽວກັບ HTTP ແລະ RPC │
│ │ │ ຄຳຮ້ອງຂໍ ແລະ ຄຳຕອບ. │
├──────────────────────────────────────────── ────────────┤
│blather │ BLAT │ ຂໍ້ຄວາມທີ່ເປັນປະໂຫຍດສໍາລັບ │
│ │ │ ນັກພັດທະນາພະຍາຍາມ │
│ │ │ ແກ້ບັນຫາຕົວຄວບຄຸມຕົວມັນເອງ. │
└───────────────────────────────────────────── ───────────┘
ກິດຈະກໍາ ຕົວເຊັນເຂົ້າ ການຫມຸນ
ບັນທຶກກິດຈະກໍາແມ່ນ "ຫມຸນ" ໂດຍ ຜູ້ຄຸມງານ ອີງໃສ່ການປະສົມປະສານຂອງ
logfile_maxbytes ແລະ logfile_backups ຕົວກໍານົດການໃນ [ຜູ້ຄຸມງານ] ພາກສ່ວນຂອງ
ໄຟລ໌ການຕັ້ງຄ່າ. ເມື່ອບັນທຶກການເຄື່ອນໄຫວໄປຮອດ logfile_maxbytes bytes, ບັນທຶກປັດຈຸບັນ
ໄຟລ໌ຖືກຍ້າຍໄປເປັນໄຟລ໌ສໍາຮອງແລະໄຟລ໌ບັນທຶກກິດຈະກໍາໃຫມ່ແມ່ນຖືກສ້າງຂຶ້ນ. ເມື່ອເຫດການນີ້ເກີດຂຶ້ນ,
ຖ້າຫາກວ່າຈໍານວນຂອງໄຟລ໌ສໍາຮອງຂໍ້ມູນທີ່ມີຢູ່ແລ້ວແມ່ນຫຼາຍກ່ວາຫຼືເທົ່າກັບ logfile_backups, ການ
ໄຟລ໌າຮອງທີ່ເກົ່າແກ່ທີ່ສຸດແມ່ນເອົາອອກແລະໄຟລ໌ສໍາຮອງຂໍ້ມູນໄດ້ຖືກປ່ຽນຊື່ຕາມຄວາມເຫມາະສົມ. ຖ້າໄຟລ໌
ຖືກຂຽນເປັນຊື່ supervisord.log, ເມື່ອມັນເກີນ logfile_maxbytes, ມັນຖືກປິດ
ແລະປ່ຽນຊື່ເປັນ supervisord.log.1, ແລະຖ້າໄຟລ໌ supervisord.log.1, supervisord.log.2 ແລະອື່ນໆ
ມີຢູ່, ຫຼັງຈາກນັ້ນເຂົາເຈົ້າໄດ້ຖືກປ່ຽນຊື່ເປັນ supervisord.log.2, supervisord.log.3 ແລະອື່ນໆ ຕາມລໍາດັບ.
If logfile_maxbytes ແມ່ນ 0, logfile ແມ່ນບໍ່ເຄີຍ rotated (ແລະດັ່ງນັ້ນຈຶ່ງ backups ບໍ່ເຄີຍເຮັດ).
If logfile_backups ແມ່ນ 0, ບໍ່ມີການສໍາຮອງຂໍ້ມູນຈະຖືກເກັບໄວ້.
ເດັກ ຂະບວນການ ຂໍ້ມູນບັນທຶກ
ຄວາມແຂງກະດ້າງຂອງຂະບວນການເດັກນ້ອຍທີ່ເກີດໂດຍຜູ້ຄຸມງານ, ໂດຍຄ່າເລີ່ມຕົ້ນ, ຈະຖືກບັນທຶກໄວ້ເພື່ອສະແດງຄືນໃໝ່
ກັບຜູ້ໃຊ້ຂອງ supervisorctl ແລະລູກຄ້າອື່ນໆ. ຖ້າບໍ່ມີການຕັ້ງຄ່າສະເພາະທີ່ກ່ຽວຂ້ອງກັບ logfile
ແມ່ນປະຕິບັດໃນ a [ໂຄງການ:x], [fcgi-ໂຄງການ:x], ຫຼື [ຜູ້ຟັງເຫດການ:x] ສ່ວນໃນ
ໄຟລ໌ການຕັ້ງຄ່າ, ຕໍ່ໄປນີ້ແມ່ນຄວາມຈິງ:
· ຜູ້ຄຸມງານ ຈະເກັບກໍາຜົນຜະລິດ stdout ຂອງຂະບວນການເດັກນ້ອຍແລະ stderr ເປັນຊົ່ວຄາວ
ໄຟລ໌. ແຕ່ລະສະຕຣີມຖືກບັນທຶກໃສ່ໄຟລ໌ແຍກຕ່າງຫາກ. ອັນນີ້ເອີ້ນວ່າ AUTO ໂຫມດບັນທຶກ.
· AUTO ໄຟລ໌ບັນທຶກຖືກຕັ້ງຊື່ໂດຍອັດຕະໂນມັດແລະວາງໄວ້ໃນໄດເລກະທໍລີທີ່ຖືກຕັ້ງຄ່າເປັນ
Childlogdir ຂອງ [ຜູ້ຄຸມງານ] ພາກສ່ວນຂອງໄຟລ໌ config.
·ຂະຫນາດຂອງແຕ່ລະຄົນ AUTO ໄຟລ໌ບັນທຶກຖືກຜູກມັດດ້ວຍ {streamname}_logfile_maxbytes ມູນຄ່າຂອງ
ພາກສ່ວນໂຄງການ (ບ່ອນທີ່ {streamname} ແມ່ນ "stdout" ຫຼື "stderr"). ເມື່ອມັນໄປຮອດນັ້ນ
ຈໍານວນ, ມັນແມ່ນ rotated (ເຊັ່ນ: ບັນທຶກກິດຈະກໍາ), ອີງໃສ່ການ
{streamname}_logfile_backups.
ກະແຈການຕັ້ງຄ່າທີ່ມີອິດທິພົນຕໍ່ການເຂົ້າສູ່ລະບົບຂອງເດັກນ້ອຍ [ໂຄງການ:x] ແລະ
[fcgi-ໂຄງການ:x] ພາກສ່ວນແມ່ນດັ່ງນີ້:
redirect_stderr, stdout_logfile, stdout_logfile_maxbytes, stdout_logfile_backups,
stdout_capture_maxbytes, stderr_logfile, stderr_logfile_maxbytes, stderr_logfile_backups
ແລະ stderr_capture_maxbytes.
ຫນຶ່ງອາດຈະກໍານົດ stdout_logfile or stderr_logfile ກັບສາຍພິເສດ "syslog". ໃນກໍລະນີນີ້,
ບັນທຶກຈະຖືກສົ່ງໄປຫາບໍລິການ syslog ແທນທີ່ຈະຖືກບັນທຶກໄວ້ໃນໄຟລ໌.
[ຜູ້ຟັງເຫດການ:x] ພາກສ່ວນອາດຈະບໍ່ລະບຸ redirect_stderr, stdout_capture_maxbytes, ຫຼື
stderr_capture_maxbytes, ແຕ່ຖ້າບໍ່ດັ່ງນັ້ນພວກເຂົາຍອມຮັບຄ່າດຽວກັນ.
ກະແຈການຕັ້ງຄ່າທີ່ມີອິດທິພົນຕໍ່ການເຂົ້າສູ່ລະບົບຂອງເດັກນ້ອຍໃນຂະບວນການ [ຜູ້ຄຸມງານ] config
ສ່ວນໄຟລ໌ແມ່ນດັ່ງນີ້: Childlogdir, ແລະ ລ້າງອະນາໄມ.
capture ຮູບແບບການ
ໂໝດຈັບພາບແມ່ນຄຸນສົມບັດຂັ້ນສູງຂອງ Supervisor. ເຈົ້າບໍ່ ຈຳ ເປັນຕ້ອງເຂົ້າໃຈຮູບແບບການຖ່າຍຮູບ
ເວັ້ນເສຍແຕ່ວ່າທ່ານຕ້ອງການດໍາເນີນການໂດຍອີງໃສ່ຂໍ້ມູນທີ່ແຍກອອກຈາກຜົນໄດ້ຮັບຂອງຂະບວນການຍ່ອຍ.
ຖ້າຫາກວ່າເປັນ [ໂຄງການ:x] ພາກສ່ວນໃນໄຟລ໌ການຕັ້ງຄ່າກຳນົດຄ່າທີ່ບໍ່ແມ່ນສູນ
stdout_capture_maxbytes or stderr_capture_maxbytes ພາລາມິເຕີ, ແຕ່ລະຂະບວນການເປັນຕົວແທນໂດຍ
ພາກສ່ວນໂຄງການອາດຈະປ່ອຍ tokens ພິເສດຢູ່ໃນ stdout ຫຼື stderr stream ຂອງມັນ (ຕາມລໍາດັບ)
ທີ່ຈະເຮັດໃຫ້ມີປະສິດທິຜົນທີ່ຈະເຮັດໃຫ້ຜູ້ດູແລທີ່ຈະປ່ອຍອອກມາເປັນ PROCESS_COMMUNICATION ເຫດການ (ເບິ່ງເຫດການ
ສໍາລັບລາຍລະອຽດຂອງເຫດການ).
ໂປຣໂຕຄໍການສື່ສານຂອງຂະບວນການແມ່ນຂຶ້ນກັບສອງແທັກ, ອັນທີ່ສັ່ງໃຫ້ຜູ້ຄຸມງານ
ເຂົ້າໄປໃນ "ຮູບແບບການຈັບພາບ" ສໍາລັບກະແສແລະອັນທີ່ສັ່ງໃຫ້ອອກ. ເມື່ອຂະບວນການ
stream ເຂົ້າໄປໃນ "capture mode", ຂໍ້ມູນທີ່ສົ່ງກັບ stream ຈະຖືກສົ່ງໄປຫາ buffer ແຍກຕ່າງຫາກໃນ
ຫນ່ວຍຄວາມຈໍາ, "capture buffer", ເຊິ່ງອະນຸຍາດໃຫ້ບັນຈຸສູງສຸດຂອງ capture_maxbytes
ໄບຕ໌. ໃນລະຫວ່າງຮູບແບບການຈັບພາບ, ໃນເວລາທີ່ຄວາມຍາວຂອງບັນເຟີເກີນ capture_maxbytes bytes, ໄດ້
ຂໍ້ມູນຕົ້ນໆໃນ buffer ແມ່ນຖືກຍົກເລີກເພື່ອສ້າງພື້ນທີ່ສໍາລັບຂໍ້ມູນໃຫມ່. ເມື່ອກະແສຂະບວນການ
ອອກຈາກໂໝດຈັບພາບ, ກ PROCESS_COMMUNICATION ປະເພດຍ່ອຍຂອງເຫດການແມ່ນປ່ອຍອອກມາໂດຍຜູ້ຄຸມງານ, ເຊິ່ງ
ອາດຈະຖືກຂັດຂວາງໂດຍຜູ້ຟັງເຫດການ.
ໂຄດຄໍາສັ່ງທີ່ຈະເລີ່ມຕົ້ນ "ຮູບແບບການຈັບພາບ" ໃນການຖ່າຍທອດຂະບວນການແມ່ນ . ໂຄດຄໍາສັ່ງ
ເພື່ອອອກຈາກຮູບແບບການຈັບພາບແມ່ນ . ຂໍ້ມູນລະຫວ່າງແທັກເຫຼົ່ານີ້ອາດຈະເປັນ
arbitrary, ແລະປະກອບເປັນ payload ຂອງ PROCESS_COMMUNICATION ເຫດການ. ຕົວຢ່າງ, ຖ້າ ກ
ໂຄງການແມ່ນໄດ້ຮັບການສ້າງຕັ້ງຂຶ້ນດ້ວຍ a stdout_capture_maxbytes ຂອງ "1MB", ແລະມັນ emits ດັ່ງຕໍ່ໄປນີ້ກ່ຽວກັບ
ກະແສ stdout ຂອງມັນ:
ສະບາຍດີ!
ໃນກໍລະນີດັ່ງກ່າວນີ້, ຜູ້ຄຸມງານ ຈະ emit ເປັນ PROCESS_COMMUNICATIONS_STDOUT ເຫດການກັບ
ຂໍ້ມູນໃນ payload ຂອງ "ສະບາຍດີ!".
ຕົວຢ່າງຂອງ script (ຂຽນໃນ Python) ທີ່ປ່ອຍເຫດການການສື່ສານຂະບວນການແມ່ນຢູ່ໃນ
ໄດ້ scripts ບັນຊີລາຍການຂອງຊຸດຜູ້ຄຸມງານ, ຊື່ sample_commevent.py.
ຜົນໄດ້ຮັບຂອງຂະບວນການທີ່ລະບຸໄວ້ເປັນ "ຜູ້ຟັງເຫດການ" ([ຜູ້ຟັງເຫດການ:x] sections) ບໍ່ແມ່ນ
ປຸງແຕ່ງດ້ວຍວິທີນີ້. ຜົນຜະລິດຈາກຂະບວນການເຫຼົ່ານີ້ບໍ່ສາມາດເຂົ້າໄປໃນຮູບແບບການຈັບພາບໄດ້.
ການຂະຫຍາຍ ຜູ້ຄຸມງານ XML-RPC API
ຜູ້ຄຸມງານສາມາດຂະຫຍາຍໄດ້ດ້ວຍ XML-RPC APIs ໃໝ່. ປລັກອິນພາກສ່ວນທີສາມຫຼາຍອັນແລ້ວ
ມີຢູ່ທີ່ສາມາດສາຍເຂົ້າໄປໃນການຕັ້ງຄ່າ Supervisor ຂອງທ່ານ. ນອກຈາກນັ້ນ, ທ່ານອາດຈະຂຽນ
ຂອງເຈົ້າເອງ. Extensible XML-RPC ການໂຕ້ຕອບແມ່ນຄຸນນະສົມບັດແບບພິເສດ, ນໍາສະເຫນີໃນສະບັບ
3.0. ທ່ານບໍ່ຈໍາເປັນຕ້ອງເຂົ້າໃຈມັນເວັ້ນເສຍແຕ່ວ່າທ່ານຕ້ອງການໃຊ້ RPC ພາກສ່ວນທີສາມທີ່ມີຢູ່ແລ້ວ
plugin interface ຫຼືຖ້າທ່ານຕ້ອງການຂຽນ plugin interface RPC ຂອງທ່ານເອງ.
ການກໍາຫນົດຄ່າ XML-RPC ການໂຕ້ຕອບ ໂຮງງານຜະລິດ
ການໂຕ້ຕອບ RPC ເພີ່ມເຕີມແມ່ນຖືກຕັ້ງຄ່າເຂົ້າໃນການຕິດຕັ້ງຜູ້ເບິ່ງແຍງໂດຍການເພີ່ມ a
[rpcinterface:x] ພາກສ່ວນໃນໄຟລ໌ການຕັ້ງຄ່າ Supervisor.
ໃນໄຟລ໌ config ຕົວຢ່າງ, ມີສ່ວນຫນຶ່ງທີ່ມີຊື່ [rpcinterface: supervisor].
ໂດຍຄ່າເລີ່ມຕົ້ນມັນເບິ່ງຄືວ່າ:
[rpcinterface: supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
ພາກນີ້ ຕ້ອງ ຍັງຄົງຢູ່ໃນການຕັ້ງຄ່າສໍາລັບການຕັ້ງຄ່າມາດຕະຖານຂອງຜູ້ເບິ່ງແຍງເພື່ອເຮັດວຽກ
ຢ່າງຖືກຕ້ອງ. ຖ້າເຈົ້າບໍ່ຕ້ອງການໃຫ້ຜູ້ຄຸມງານເຮັດຫຍັງ ມັນກໍບໍ່ໄດ້ເຮັດແລ້ວ
ກ່ອງ, ນີ້ແມ່ນທັງຫມົດທີ່ທ່ານຈໍາເປັນຕ້ອງຮູ້ກ່ຽວກັບປະເພດຂອງພາກນີ້.
ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານຕ້ອງການເພີ່ມ XML-RPC interface namespaces ເພີ່ມເຕີມຕໍ່ກັບການຕັ້ງຄ່າຂອງ
ຜູ້ຄຸມງານ, ເຈົ້າອາດຈະເພີ່ມຕື່ມ [rpcinterface:foo] ພາກສ່ວນ, ບ່ອນທີ່ "foo" ເປັນຕົວແທນຂອງ
namespace ຂອງການໂຕ້ຕອບ (ຈາກຮາກເວັບໄຊຕ໌), ແລະຄ່າທີ່ມີຊື່ໂດຍ
supervisor.rpcinterface_factory ແມ່ນໂຮງງານທີ່ເອີ້ນວ່າ Python ທີ່ຄວນຈະມີ
ລາຍເຊັນຂອງຟັງຊັນທີ່ຍອມຮັບການໂຕ້ຖຽງຕໍາແຫນ່ງດຽວ ຜູ້ຄຸມງານ ແລະເປັນຈໍານວນຫຼາຍ
ການໂຕ້ຖຽງຄໍາຫລັກຕາມຄວາມຕ້ອງການເພື່ອປະຕິບັດການຕັ້ງຄ່າ. ຄູ່ຄີ/ຄ່າທີ່ກຳນົດໄວ້
ພາຍໃນ rpcinterface:foo ພາກສ່ວນຈະຖືກສົ່ງຜ່ານເປັນການໂຕ້ຖຽງຄໍາຫລັກໄປຫາໂຮງງານ.
ນີ້ແມ່ນຕົວຢ່າງຂອງຫນ້າທີ່ໂຮງງານຜະລິດ, ສ້າງຢູ່ໃນຊຸດ my.package.
def make_another_rpcinterface(supervisord, **config):
retries = int(config.get('retries', 0))
another_rpc_interface = ໂຕອື່ນ RPCInterface(ຜູ້ເບິ່ງແຍງ, ລອງໃໝ່)
ກັບຄືນ another_rpc_interface
ແລະພາກສ່ວນໃນໄຟລ໌ config ຫມາຍຄວາມວ່າຈະ configure ມັນ.
[rpcinterface: ອື່ນ]
supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
ລອງໃຫມ່ = 1
ຄໍາແປສັບ
daemontools
A ຂະບວນການ ການຄວບຄຸມ ລະບົບ by DJ ອໍາພັນ.
ເປີດຕົວ
A ຂະບວນການ ການຄວບຄຸມ ລະບົບ ໃຫມ່ by ຈາກຫນາກແອບເປີ ເປັນຂະບວນການ 1 ພາຍໃຕ້ Mac OS X.
ແລ່ນ A ຂະບວນການ ການຄວບຄຸມ ລະບົບ.
ສຸດຍອດ
ຊຸດທີ່ສະຫນອງການປະຕິບັດການຟັງເຫດການຕ່າງໆທີ່ສຽບເຂົ້າໄປໃນ
Supervisor ທີ່ສາມາດຊ່ວຍຕິດຕາມກວດກາການນໍາໃຊ້ຫນ່ວຍຄວາມຈໍາຂະບວນການແລະສະຖານະການຂັດຂ້ອງ:
http://pypi.python.org/pypi/superlance.
ໜ້າ ກາກ ຕົວຫຍໍ້ຂອງ ຜູ້ໃຊ້ ຫນ້າກາກ: ກໍານົດຫນ້າກາກການສ້າງຮູບແບບໄຟລ໌ຂອງຂະບວນການປະຈຸບັນ.
ເບິ່ງ http://en.wikipedia.org/wiki/Umask.
API ເອກະສານອ້າງອີງ
XML-RPC API ເອກະສານ
ເພື່ອໃຊ້ອິນເຕີເຟດ XML-RPC, ເຊື່ອມຕໍ່ຫາພອດ HTTP ຂອງຜູ້ຄຸມງານກັບລູກຂ່າຍ XML-RPC ໃດກໍໄດ້
ຫ້ອງສະຫມຸດແລະດໍາເນີນການຄໍາສັ່ງຕໍ່ກັບມັນ. ຕົວຢ່າງຂອງການເຮັດສິ່ງນີ້ໂດຍໃຊ້ Python's xmlrpcib
ຫ້ອງສະຫມຸດລູກຄ້າມີດັ່ງນີ້.
ນໍາເຂົ້າ xmlrpcib
server = xmlrpclib.Server('http://localhost:9001/RPC2')
ທ່ານອາດຈະໂທຫາວິທີການຕໍ່ຕ້ານ ຜູ້ຄຸມງານ ແລະຂະບວນການຍ່ອຍຂອງມັນໂດຍໃຊ້ supervisor
namespace. ຕົວຢ່າງແມ່ນສະຫນອງໃຫ້ຂ້າງລຸ່ມນີ້.
server.supervisor.getState()
ທ່ານສາມາດໄດ້ຮັບບັນຊີລາຍຊື່ຂອງວິທີການສະຫນັບສະຫນູນໂດຍ ຜູ້ຄຸມງານ ການໂຕ້ຕອບ XML-RPC ໂດຍໃຊ້
XML-RPC system.list ວິທີການ APIs:
server.system.listMethods()
ທ່ານສາມາດເບິ່ງການຊ່ວຍເຫຼືອກ່ຽວກັບວິທີການໂດຍການນໍາໃຊ້ system.method ຊ່ວຍ API ຕໍ່ກັບວິທີການ:
server.system.methodHelp('supervisor.shutdown')
ໄດ້ ຜູ້ຄຸມງານ ການໂຕ້ຕອບ XML-RPC ຍັງສະຫນັບສະຫນູນ XML-RPC ການໂທຫຼາຍຄັ້ງ API.
ທ່ານສາມາດຂະຫຍາຍໄດ້ ຜູ້ຄຸມງານ ການທໍາງານດ້ວຍວິທີການ API XML-RPC ໃຫມ່ໂດຍການເພີ່ມໃຫມ່
ການໂຕ້ຕອບ RPC ລະດັບສູງສຸດຕາມຄວາມຈໍາເປັນ. ເບິ່ງ rpcinterface_factories.
ຫມາຍເຫດ:
ການໂທດ້ວຍວິທີການ XML-RPC ອາດຈະສົ່ງຜົນໃຫ້ເກີດການຕອບໂຕ້ຜິດ. ນີ້ປະກອບມີຄວາມຜິດພາດທີ່ເກີດຈາກ
ລູກຄ້າເຊັ່ນການໂຕ້ຖຽງທີ່ບໍ່ດີ, ແລະຄວາມຜິດພາດໃດໆທີ່ເຮັດໃຫ້ ຜູ້ຄຸມງານ ບໍ່ສາມາດ
ປະຕິບັດຄໍາຮ້ອງຂໍ. ຫຼາຍໂຄງການລູກຄ້າ XML-RPC ຈະຍົກຂໍ້ຍົກເວັ້ນເມື່ອມີຄວາມຜິດ
ການຕອບສະຫນອງແມ່ນພົບ.
ສະຖານະພາບ ແລະ ການຄວບຄຸມ
ລະດັບ supervisor.rpcinterface.SupervisorNamespaceRPCIInterface(ຜູ້ຄຸມງານ)
getAPIVersion()
ສົ່ງຄືນເວີຊັນຂອງ RPC API ທີ່ໃຊ້ໂດຍຜູ້ເບິ່ງແຍງກວດກາ
@return string version id
API ນີ້ແມ່ນສະບັບແຍກຈາກ Supervisor ເອງ. ສະບັບ API
ກັບຄືນໂດຍ getAPIVersion ພຽງແຕ່ປ່ຽນແປງເມື່ອ API ປ່ຽນແປງ. ຈຸດປະສົງຂອງມັນ
ແມ່ນເພື່ອຊ່ວຍໃຫ້ລູກຄ້າລະບຸໄດ້ວ່າສະບັບໃດຂອງ Supervisor API
ມັນເປັນການສື່ສານ.
ໃນເວລາທີ່ຂຽນຊອບແວທີ່ຕິດຕໍ່ສື່ສານກັບ API ນີ້, ມັນແມ່ນສູງ
ແນະນໍາໃຫ້ທ່ານທົດສອບສະບັບ API ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກ່ອນ
ໂທຫາວິທີການ.
ຫມາຍເຫດ:
ໄດ້ getAPIVersion ວິທີການທົດແທນ getVersion ພົບເຫັນຢູ່ໃນ Supervisor
ຮຸ່ນກ່ອນ 3.0a1. ມັນແມ່ນນາມແຝງສໍາລັບຄວາມເຂົ້າກັນໄດ້ແຕ່
getVersion() ຖືກຄັດຄ້ານ ແລະການສະຫນັບສະຫນູນຈະຖືກຍົກເລີກຈາກ
ຜູ້ຄຸມງານໃນສະບັບໃນອະນາຄົດ.
getSupervisorVersion()
ສົ່ງຄືນເວີຊັນຂອງແພັກເກັດຜູ້ຄຸມງານທີ່ໃຊ້ຢູ່ໂດຍຜູ້ຄຸມງານ
@return string version id
getIdentification()
ກັບຄືນໄປບ່ອນການລະບຸສາຍຂອງຜູ້ຄວບຄຸມ
@return string identifier ການລະບຸສະຕຣິງ
ວິທີການນີ້ເຮັດໃຫ້ລູກຄ້າສາມາດລະບຸໄດ້ວ່າຕົວຢ່າງ Supervisor ໃດ
ມັນແມ່ນການສື່ສານໃນກໍລະນີຂອງສະພາບແວດລ້ອມທີ່ຫຼາກຫຼາຍ
ຜູ້ຄຸມງານອາດຈະແລ່ນຢູ່.
ການລະບຸຕົວຕົນແມ່ນສະຕຣິງທີ່ຕ້ອງຖືກກໍານົດໄວ້ໃນ Supervisor's
ໄຟລ໌ການຕັ້ງຄ່າ. ວິທີການນີ້ພຽງແຕ່ສົ່ງຄືນມູນຄ່ານັ້ນກັບຄືນໄປບ່ອນ
ລູກຄ້າ.
getState()
ກັບຄືນສະຖານະປັດຈຸບັນຂອງຜູ້ຄວບຄຸມເປັນໂຄງສ້າງ
@return struct A struct ທີ່ມີກະແຈ int statecode, string statename
ນີ້ແມ່ນມູນຄ່າພາຍໃນທີ່ຮັກສາໄວ້ໂດຍ Supervisor ທີ່ກໍານົດສິ່ງທີ່
ຜູ້ຄຸມງານເຊື່ອວ່າເປັນສະຖານະການປະຕິບັດການຂອງຕົນໃນປະຈຸບັນ.
ການໂທບາງວິທີສາມາດປ່ຽນແປງສະຖານະປັດຈຸບັນຂອງຜູ້ຄຸມໄດ້. ສໍາລັບ
ຕົວຢ່າງ, ໂທຫາວິທີການ supervisor.shutdown() ໃນຂະນະທີ່ສະຖານີຢູ່ໃນ
ລັດ RUNNING ວາງຜູ້ຄຸມງານຢູ່ໃນລັດ SHUTDOWN ໃນຂະນະທີ່ມັນຢູ່
ປິດລົງ.
ວິທີການ supervisor.getState() ສະຫນອງວິທີການສໍາລັບລູກຄ້າໃນການກວດສອບ
ລັດຂອງຜູ້ຄຸມງານ, ທັງສໍາລັບຈຸດປະສົງຂໍ້ມູນຂ່າວສານແລະເພື່ອຮັບປະກັນວ່າ
ວິທີການທີ່ມັນຕັ້ງໃຈຈະໂທຫາຈະໄດ້ຮັບການອະນຸຍາດ.
ຄ່າກັບຄືນແມ່ນໂຄງສ້າງ:
{'ລະຫັດລັດ': 1,
'ຊື່ລັດ': 'ແລ່ນ'}
ຄ່າຜົນຕອບແທນທີ່ເປັນໄປໄດ້ແມ່ນ:
┌────────────┬──────────────────────────────── ─┐
│statecode │ statename │ Description │
├─────────────────────────────────────────── ─┤
│2 │ FATAL │ Supervisor ມີ │
│ │ │ ປະສົບກັບຄວາມຮ້າຍແຮງ│
│ │ │ ຜິດພາດ. │
├─────────────────────────────────────────── ─┤
│1 │ ແລ່ນ │ ຜູ້ຄຸມກຳລັງເຮັດວຽກ │
│ │ │ ປົກກະຕິ. │
├─────────────────────────────────────────── ─┤
│0 │ REstarting │ Supervisor ຢູ່ໃນ │
│ │ │ ຂະບວນການຣີສະຕາດ. │
├─────────────────────────────────────────── ─┤
│-1 │ SHUTDOWN │ Supervisor ຢູ່ໃນ │
│ │ │ ຂະບວນການປິດ │
│ │ │ ລົງ. │
└─────────────────────────────────────────── ─┘
ໄດ້ ໄຂມັນ ລັດລາຍງານຄວາມຜິດພາດທີ່ບໍ່ສາມາດກູ້ຄືນໄດ້, ເຊັ່ນ: ຂໍ້ຜິດພາດພາຍໃນ
ພາຍໃນສະພາບການຂອງຜູ້ຄວບຄຸມຫຼືລະບົບ. ເມື່ອຕັ້ງເປັນ ໄຂມັນ, ການ
ຜູ້ຄຸມງານບໍ່ສາມາດກັບຄືນສູ່ສະຖານະອື່ນໄດ້ໂດຍບໍ່ມີການເລີ່ມຕົ້ນໃຫມ່.
ໃນ ໄຂມັນ ລັດ, ວິທີການໃນອະນາຄົດທັງຫມົດຍົກເວັ້ນ supervisor.shutdown() ແລະ
supervisor.restart() ອັດຕະໂນມັດຈະລົ້ມເຫລວໂດຍບໍ່ມີການຖືກເອີ້ນແລະ
ຄວາມຜິດ FATAL_STATE ຈະຖືກຍົກຂຶ້ນມາ.
ໃນ ປິດເຄື່ອງ or ກຳລັງເລີ່ມໃໝ່ ລັດ, ການໂທວິທີການທັງຫມົດແມ່ນຖືກລະເລີຍແລະ
ຄ່າກັບຄືນທີ່ເປັນໄປໄດ້ຂອງພວກເຂົາແມ່ນບໍ່ໄດ້ກໍານົດ.
getPID()
ສົ່ງຄືນ PID ຂອງຜູ້ເບິ່ງແຍງ
@return int PID
readLog(ຊົດເຊີຍ, ຄວາມຍາວ)
ອ່ານໄບຕ໌ຄວາມຍາວຈາກບັນທຶກຫຼັກເລີ່ມຕົ້ນທີ່ການຊົດເຊີຍ
@param int offset ຊົດເຊີຍເພື່ອເລີ່ມຕົ້ນການອ່ານຈາກ. @param int
ຄວາມຍາວຂອງໄບຕ໌ທີ່ຈະອ່ານຈາກບັນທຶກ. @return string
ຜົນໄດ້ຮັບ Bytes ຂອງບັນທຶກ
ມັນສາມາດສົ່ງຄືນບັນທຶກທັງໝົດ, ຕົວອັກສອນຈຳນວນໜຶ່ງຈາກຫາງ
ຂອງໄມ້ທ່ອນ, ຫຼືບາງສ່ວນຂອງໄມ້ທ່ອນທີ່ລະບຸໂດຍການຊົດເຊີຍ ແລະຄວາມຍາວ
ພາລາມິເຕີ:
┌─────────────────────────────────────────────── ──────┐
│ ຊົດເຊີຍ │ ຄວາມຍາວ │ ພຶດຕິກຳຂອງ │
│ │ │ readProcessLog │
├──────────────────────────────────────────── ──────┤
│ Negative │ Not Zero │ arguments ບໍ່ດີ. ນີ້ຈະ│
│ │ │ ຍົກຄວາມຜິດ │
│ │ │ BAD_ARGUMENTS. │
└────────────────────────────────────────────── ──────┘
│ລົບ │ Zero │ ອັນນີ້ຈະສົ່ງຄືນຄ່າ │
│ │ │ ຫາງຂອງໄມ້ທ່ອນ, ຫຼື │
│ │ │ ຈຳນວນຊົດເຊີຍຂອງ │
│ │ │ ຕົວອັກສອນຈາກທ້າຍ │
│ │ │ ຂອງບັນທຶກ. ສໍາລັບ │
│ │ │ ຕົວຢ່າງ, ຖ້າ ຊົດເຊີຍ = −4 │
│ │ │ ແລະ ຄວາມຍາວ = 0, ຈາກນັ້ນ │
│ │ │ ສີ່ຕົວສຸດທ້າຍ │
│ │ │ ຈະຖືກສົ່ງຄືນຈາກ │
│ │ │ ທ້າຍຂອງບັນທຶກ. │
├──────────────────────────────────────────── ──────┤
│ສູນ ຫຼື ບວກ │ ລົບ │ ການໂຕ້ຖຽງທີ່ບໍ່ດີ. ນີ້ຈະ│
│ │ │ ຍົກຄວາມຜິດ │
│ │ │ BAD_ARGUMENTS. │
├──────────────────────────────────────────── ──────┤
│ສູນ ຫຼື ບວກ │ ສູນ │ ຕົວອັກສອນທັງໝົດຈະເປັນ │
│ │ │ ກັບມາຈາກ ຊົດເຊີຍ │
│ │ │ ລະບຸ. │
├──────────────────────────────────────────── ──────┤
│ສູນ ຫຼື ບວກ │ ບວກ │ ຕົວອັກສອນຈຳນວນໜຶ່ງ│
│ │ │ ຄວາມຍາວຈະຖືກສົ່ງກັບ │
│ │ │ ຈາກ ຊົດເຊີຍ. │
└────────────────────────────────────────────── ──────┘
ຖ້າບັນທຶກແມ່ນຫວ່າງເປົ່າແລະບັນທຶກທັງຫມົດຖືກຮ້ອງຂໍ, string ຫວ່າງເປົ່າແມ່ນ
ກັບຄືນມາ.
ຖ້າຫາກວ່າການຊົດເຊີຍຫຼືຄວາມຍາວຢູ່ນອກລະດັບ, ຄວາມຜິດພາດ BAD_ARGUMENTS ຈະ
ໄດ້ຮັບການກັບຄືນ.
ຖ້າບັນທຶກບໍ່ສາມາດອ່ານໄດ້, ວິທີການນີ້ຈະຍົກຂຶ້ນມາ NO_FILE
ຄວາມຜິດພາດຖ້າຫາກວ່າໄຟລ໌ບໍ່ມີຫຼື ປະຕິບັດ ຜິດພາດຖ້າຫາກວ່າບັນຫາອື່ນໆ
ໄດ້ພົບ.
ຫມາຍເຫດ:
ວິທີການ readLog() ແທນ readMainLog() ທີ່ພົບໃນ Supervisor
ຮຸ່ນກ່ອນ 2.1. ມັນແມ່ນນາມແຝງສໍາລັບຄວາມເຂົ້າກັນໄດ້ແຕ່
readMainLog() ໄດ້ຖືກຍົກເລີກ ແລະການສະຫນັບສະຫນູນຈະຖືກຫຼຸດລົງຈາກ
ຜູ້ຄຸມງານໃນສະບັບໃນອະນາຄົດ.
clearLog()
ລຶບບັນທຶກຫຼັກ.
@return ຜົນໄດ້ຮັບ boolean ສະເຫມີກັບຄືນ True ເວັ້ນເສຍແຕ່ມີຂໍ້ຜິດພາດ
ຖ້າບັນທຶກບໍ່ສາມາດຖືກລົບລ້າງເນື່ອງຈາກວ່າໄຟລ໌ບັນທຶກບໍ່ມີ, ໄດ້
ຄວາມຜິດ NO_FILE ຈະຖືກຍົກຂຶ້ນມາ. ຖ້າບັນທຶກບໍ່ສາມາດຖືກລຶບລ້າງໃຫ້ອັນອື່ນ
ເຫດຜົນ, ຄວາມຜິດ ປະຕິບັດ ຈະຖືກຍົກຂຶ້ນມາ.
ປິດເຄື່ອງ()
ປິດຂະບວນການຜູ້ຄຸມງານ
@return ຜົນໄດ້ຮັບ boolean ສະເຫມີກັບຄືນ True ເວັ້ນເສຍແຕ່ມີຂໍ້ຜິດພາດ
ວິທີການນີ້ປິດ daemon Supervisor. ຖ້າຂະບວນການໃດ
ແລ່ນ, ພວກເຂົາຖືກຂ້າໂດຍອັດຕະໂນມັດໂດຍບໍ່ມີການເຕືອນ.
ບໍ່ເຫມືອນກັບວິທີການອື່ນໆຫຼາຍທີ່ສຸດ, ຖ້າ Supervisor ຢູ່ໃນ ໄຂມັນ ລັດ, ນີ້
ວິທີການຍັງຈະເຮັດວຽກ.
ເລີ່ມຕົ້ນໃຫມ່()
ຣີສະຕາດຂະບວນການຜູ້ຄຸມງານ
@return ຜົນໄດ້ຮັບ boolean ສະເຫມີກັບຄືນ True ເວັ້ນເສຍແຕ່ຄວາມຜິດພາດ
ວິທີນີ້ປິດເປີດ daemon Supervisor ຄືນໃໝ່. ຖ້າຂະບວນການໃດ
ແລ່ນ, ພວກເຂົາຖືກຂ້າໂດຍອັດຕະໂນມັດໂດຍບໍ່ມີການເຕືອນ. ໃຫ້ສັງເກດວ່າ
ຂະບວນການ UNIX ຕົວຈິງສໍາລັບ Supervisor ບໍ່ສາມາດເລີ່ມຕົ້ນໃຫມ່ໄດ້; ພຽງແຕ່ຫົວຫນ້າຂອງຜູ້ດູແລ
ໂປຣແກຣມ loop. ນີ້ມີຜົນກະທົບຂອງການປັບສະຖານະພາຍໃນຂອງ
Supervisor
ບໍ່ເຫມືອນກັບວິທີການອື່ນໆຫຼາຍທີ່ສຸດ, ຖ້າ Supervisor ຢູ່ໃນ ໄຂມັນ ລັດ, ນີ້
ວິທີການຍັງຈະເຮັດວຽກ.
ຂະບວນການ ການຄວບຄຸມ
ລະດັບ supervisor.rpcinterface.SupervisorNamespaceRPCIInterface(ຜູ້ຄຸມງານ)
getProcessInfo(ຊື່)
ໄດ້ຮັບຂໍ້ມູນກ່ຽວກັບຂະບວນການທີ່ມີຊື່
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name') @return
struct result A ໂຄງສ້າງທີ່ມີຂໍ້ມູນກ່ຽວກັບຂະບວນການ
ຄ່າກັບຄືນແມ່ນໂຄງສ້າງ:
{'ຊື່': 'ຊື່ຂະບວນການ',
'ກຸ່ມ': 'ຊື່ກຸ່ມ',
'ລາຍລະອຽດ': 'pid 18806, ເວລາເຮັດວຽກ 0:03:12'
'ເລີ່ມຕົ້ນ': 1200361776,
'ຢຸດ': 0,
'ດຽວນີ້': 1200361812,
'ລັດ': 1,
'ຊື່ລັດ': 'ແລ່ນ',
'ຜູ້ລ້ຽງສັດ': '',
'ອອກຈາກສະຖານະ': 0,
'logfile': '/path/to/stdout-log', # ເຊົາໃຊ້ແລ້ວ, b/c ເທົ່ານັ້ນ
'stdout_logfile': '/path/to/stdout-log',
'stderr_logfile': '/path/to/stderr-log',
'pid': 1}
ຊື່ ຊື່ຂອງຂະບວນການ
ກຸ່ມ ຊື່ຂອງຂະບວນການ' ກຸ່ມ
ຄໍາອະທິບາຍ
ຖ້າສະຖານະຂະບວນການກໍາລັງແລ່ນຄ່າຂອງຄໍາອະທິບາຍແມ່ນ process_id ແລະ
ເວລາເຮັດວຽກ. ຕົວຢ່າງ "pid 18806, uptime 0:03:12". ຖ້າສະຖານະຂະບວນການແມ່ນ
ຄ່າຄຳອະທິບາຍທີ່ຢຸດແມ່ນເວລາຢຸດ. ຕົວຢ່າງ:"ເດືອນມິຖຸນາ 5 03:16 ໂມງແລງ
".
ການເລີ່ມຕົ້ນ UNIX ສະແຕມເວລາຂອງເວລາທີ່ຂະບວນການໄດ້ເລີ່ມຕົ້ນ
ຢຸດ UNIX timestamp ຂອງເວລາທີ່ຂະບວນການສຸດທ້າຍສິ້ນສຸດລົງ, ຫຼື 0 ຖ້າຂະບວນການ
ບໍ່ເຄີຍຢຸດເຊົາ.
ໃນປັດຈຸບັນ UNIX timestamp ຂອງເວລາປະຈຸບັນ, ເຊິ່ງສາມາດໃຊ້ໃນການຄິດໄລ່
ຂະບວນການເຖິງເວລາ.
ລັດ ລະຫັດລັດ, ເບິ່ງ process_states.
ຊື່ລັດ
ລາຍລະອຽດສາຍຂອງ ລັດ, ເບິ່ງ process_states.
logfile
ຍົກເລີກນາມແຝງສຳລັບ stdout_logfile. ນີ້ແມ່ນສະຫນອງໃຫ້ພຽງແຕ່ສໍາລັບ
ຄວາມເຂົ້າກັນໄດ້ກັບລູກຄ້າທີ່ຂຽນສໍາລັບ Supervisor 2.x ແລະອາດຈະເປັນ
ເອົາອອກໃນອະນາຄົດ. ໃຊ້ stdout_logfile ແທນທີ່ຈະເປັນ.
stdout_logfile
ເສັ້ນທາງຢ່າງແທ້ຈິງ ແລະຊື່ໄຟລ໌ໄປຫາໄຟລ໌ບັນທຶກ STDOUT
stderr_logfile
ເສັ້ນທາງຢ່າງແທ້ຈິງ ແລະຊື່ໄຟລ໌ໄປຫາໄຟລ໌ບັນທຶກ STDOUT
ຜູ້ລ້ຽງສັດ
ລາຍລະອຽດຂອງຄວາມຜິດພາດທີ່ເກີດຂຶ້ນໃນລະຫວ່າງການ spawn, ຫຼືສາຍເປົ່າ
ຖ້າບໍ່ມີ.
ສະຖານະການອອກ
ອອກຈາກສະຖານະ (ລະດັບຄວາມຜິດພາດ) ຂອງຂະບວນການ, ຫຼື 0 ຖ້າຂະບວນການຍັງຢູ່
ແລ່ນ.
pid UNIX process ID (PID) ຂອງຂະບວນການ, ຫຼື 0 ຖ້າຂະບວນການບໍ່ແມ່ນ
ແລ່ນ.
getAllProcessInfo()
ໄດ້ຮັບຂໍ້ມູນກ່ຽວກັບຂະບວນການທັງຫມົດ
@return array ຜົນໄດ້ຮັບ array ຂອງຜົນໄດ້ຮັບສະຖານະພາບຂະບວນການ
ແຕ່ລະອົງປະກອບມີໂຄງສ້າງ, ແລະໂຄງສ້າງນີ້ປະກອບດ້ວຍອັນດຽວກັນ
ອົງປະກອບຕາມໂຄງສ້າງທີ່ສົ່ງຄືນໂດຍ getProcessInfo. ຖ້າຕາຕະລາງຂະບວນການ
ຫວ່າງເປົ່າ, array ຫວ່າງເປົ່າຖືກສົ່ງຄືນ.
ຂະບວນການເລີ່ມຕົ້ນ (ຊື່, wait=True)
ເລີ່ມຂະບວນການ
@param string name ຊື່ຂະບວນການ (ຫຼື ກຸ່ມ: ຊື່, ຫຼື ກຸ່ມ:*) @param
boolean wait ລໍຖ້າຂະບວນການເລີ່ມຕົ້ນຢ່າງເຕັມທີ່ @return boolean result
ເປັນຄວາມຈິງສະເໝີເວັ້ນເສຍແຕ່ມີຄວາມຜິດພາດ
startAllProcesses(ລໍຖ້າ=ແທ້)
ເລີ່ມຕົ້ນຂະບວນການທັງຫມົດທີ່ລະບຸໄວ້ໃນໄຟລ໌ການຕັ້ງຄ່າ
@param boolean wait ລໍຖ້າໃຫ້ແຕ່ລະຂະບວນການເລີ່ມເຕັມ @return
array ຜົນໄດ້ຮັບ array ຂອງໂຄງສ້າງຂໍ້ມູນສະຖານະຂະບວນການ
startProcessGroup(ຊື່, wait=True)
ເລີ່ມຕົ້ນຂະບວນການທັງຫມົດໃນກຸ່ມທີ່ມີຊື່ວ່າ 'ຊື່'
@param string name ຊື່ກຸ່ມ @param boolean wait wait for
ແຕ່ລະຂະບວນການທີ່ຈະເລີ່ມຕົ້ນຢ່າງເຕັມທີ່ @return array ຜົນໄດ້ຮັບ array ຂອງ
ໂຄງສ້າງຂໍ້ມູນສະຖານະຂະບວນການ
ຂະບວນການຢຸດ (ຊື່, wait=True)
ຢຸດຂະບວນການທີ່ມີຊື່
@param ຊື່ສະຕຣິງ ຊື່ຂອງຂະບວນການທີ່ຈະຢຸດ (ຫຼື 'ກຸ່ມ:ຊື່')
@param boolean wait ລໍຖ້າໃຫ້ຂະບວນການຢຸດຢ່າງສົມບູນ
@return boolean ຜົນໄດ້ຮັບສະເຫມີກັບ True ເວັ້ນເສຍແຕ່ມີຄວາມຜິດພາດ
stopProcessGroup(ຊື່, wait=True)
ຢຸດຂະບວນການທັງຫມົດໃນກຸ່ມຂະບວນການທີ່ມີຊື່ວ່າ 'ຊື່'
@param string name ຊື່ກຸ່ມ @param boolean wait wait for
ແຕ່ລະຂະບວນການທີ່ຈະໄດ້ຮັບການຢຸດເຊົາຢ່າງເຕັມທີ່ @return array ຜົນໄດ້ຮັບ array ຂອງ
ໂຄງສ້າງຂໍ້ມູນສະຖານະຂະບວນການ
stopAllProcesses(ລໍຖ້າ=ແທ້)
ຢຸດເຊົາຂະບວນການທັງຫມົດໃນບັນຊີລາຍຊື່ຂະບວນການ
@param boolean wait ລໍຖ້າໃຫ້ແຕ່ລະຂະບວນການຢຸດເຕັມ @return
array ຜົນໄດ້ຮັບ array ຂອງໂຄງສ້າງຂໍ້ມູນສະຖານະຂະບວນການ
sendProcessStdin(ຊື່, ຕົວອັກສອນ)
ສົ່ງສະຕຣິງຂອງຕົວອັກສອນໄປຫາ stdin ຂອງຊື່ຂະບວນການ. ຖ້າບໍ່ແມ່ນ 7-bit
ຂໍ້ມູນຖືກສົ່ງ (unicode), ມັນຖືກເຂົ້າລະຫັດເປັນ utf-8 ກ່ອນທີ່ຈະຖືກສົ່ງໄປຫາ
ຂະບວນການ. ຖ້າ chars ບໍ່ແມ່ນ string ຫຼືບໍ່ແມ່ນ unicode, ຍົກສູງ
INCORRECT_PARAMETERS. ຖ້າຂະບວນການບໍ່ເຮັດວຽກ, ໃຫ້ຍົກ NOT_RUNNING.
ຖ້າຂະບວນການ' stdin ບໍ່ສາມາດຍອມຮັບການປ້ອນຂໍ້ມູນ (ເຊັ່ນ: ມັນຖືກປິດໂດຍ
ຂະບວນການເດັກ), ຍົກສູງ NO_FILE.
@param string name ຊື່ຂະບວນການທີ່ຈະສົ່ງໄປຫາ (ຫຼື 'ກຸ່ມ:ຊື່')
@param string chars ຂໍ້ມູນຕົວອັກສອນທີ່ຈະສົ່ງໄປຫາຂະບວນການ
@return boolean ຜົນໄດ້ຮັບສະເຫມີກັບ True ເວັ້ນເສຍແຕ່ມີຄວາມຜິດພາດ
sendRemoteCommEvent(ປະເພດ, ຂໍ້ມູນ)
ສົ່ງເຫດການທີ່ຈະໄດ້ຮັບໂດຍຂະບວນການຍ່ອຍຂອງຜູ້ຟັງເຫດການ
ສະໝັກໃຊ້ RemoteCommunicationEvent.
@param string type String ສໍາລັບປຸ່ມ "type" ໃນຫົວຂໍ້ເຫດການ
@param string data ຂໍ້ມູນສຳລັບຕົວເຫດການ @return boolean
ກັບຄືນ True ສະເໝີ ເວັ້ນເສຍແຕ່ຄວາມຜິດພາດ
reloadConfig()
ໂຫຼດການຕັ້ງຄ່າຄືນໃໝ່
@return ຜົນໄດ້ຮັບ boolean ສະເຫມີກັບຄືນ True ເວັ້ນເສຍແຕ່ຄວາມຜິດພາດ
addProcessGroup(ຊື່)
ອັບເດດ config ສໍາລັບຂະບວນການແລ່ນຈາກໄຟລ໌ config.
@param ຊື່ສະຕຣິງຊື່ຂອງກຸ່ມຂະບວນການເພື່ອເພີ່ມ @return boolean
ຜົນໄດ້ຮັບທີ່ແທ້ຈິງຖ້າປະສົບຜົນສໍາເລັດ
removeProcessGroup(ຊື່)
ເອົາຂະບວນການທີ່ຢຸດເຊົາອອກຈາກການຕັ້ງຄ່າທີ່ເຮັດວຽກ.
@param ຊື່ສະຕຣິງຊື່ຂອງກຸ່ມຂະບວນການທີ່ຈະເອົາ @return
ຜົນໄດ້ຮັບ boolean ຊີ້ບອກວ່າການເອົາອອກໄດ້ສໍາເລັດຫຼືບໍ່
ຂະບວນການ ການຕັດໄມ້ທ່ອນ
ລະດັບ supervisor.rpcinterface.SupervisorNamespaceRPCIInterface(ຜູ້ຄຸມງານ)
readProcessStdoutLog(ຊື່, ຊົດເຊີຍ, ຄວາມຍາວ)
ອ່ານຄວາມຍາວ bytes ຈາກບັນທຶກ stdout ຂອງຊື່ເລີ່ມຕົ້ນທີ່ offset
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name')
@param int offset ຊົດເຊີຍເພື່ອເລີ່ມຕົ້ນການອ່ານຈາກ. @param int
ຄວາມຍາວຂອງໄບຕ໌ທີ່ຈະອ່ານຈາກບັນທຶກ. @return string
ຜົນໄດ້ຮັບ Bytes ຂອງບັນທຶກ
readProcessStderrLog(ຊື່, ຊົດເຊີຍ, ຄວາມຍາວ)
ອ່ານຄວາມຍາວ bytes ຈາກບັນທຶກ stderr ຂອງຊື່ເລີ່ມຕົ້ນທີ່ offset
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name')
@param int offset ຊົດເຊີຍເພື່ອເລີ່ມຕົ້ນການອ່ານຈາກ. @param int
ຄວາມຍາວຂອງໄບຕ໌ທີ່ຈະອ່ານຈາກບັນທຶກ. @return string
ຜົນໄດ້ຮັບ Bytes ຂອງບັນທຶກ
tailProcessStdoutLog(ຊື່, ຊົດເຊີຍ, ຄວາມຍາວ)
ສະຫນອງວິທີການທີ່ມີປະສິດທິພາບຫຼາຍຂຶ້ນເພື່ອຫາງບັນທຶກ (stdout) ຫຼາຍກວ່າ
readProcessStdoutLog(). ໃຊ້ readProcessStdoutLog() ເພື່ອອ່ານ chunks ແລະ
tailProcessStdoutLog() ໄປຫາຫາງ.
ການຮ້ອງຂໍ (ຄວາມຍາວ) bytes ຈາກບັນທຶກຂອງ (ຊື່), ເລີ່ມຕົ້ນທີ່ (ຊົດເຊີຍ). ຖ້າ
ຂະຫນາດຂອງບັນທຶກທັງຫມົດແມ່ນໃຫຍ່ກວ່າ (ຊົດເຊີຍ + ຄວາມຍາວ), ທຸງ overflow
ຖືກຕັ້ງແລະ (ຊົດເຊີຍ) ຈະຖືກເພີ່ມຂຶ້ນໂດຍອັດຕະໂນມັດເພື່ອຈັດຕໍາແຫນ່ງ buffer
ໃນຕອນທ້າຍຂອງບັນທຶກ. ຖ້າມີຫນ້ອຍກວ່າ (ຄວາມຍາວ) bytes, the
ຈຳນວນສູງສຸດຂອງໄບຕ໌ທີ່ມີຢູ່ຈະຖືກສົ່ງຄືນ. (ຊົດເຊີຍ) ກັບຄືນມາແມ່ນ
ເປັນການຊົດເຊີຍສຸດທ້າຍສະເໝີໃນບັນທຶກ +1.
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name')
@param int offset ຊົດເຊີຍເພື່ອເລີ່ມຕົ້ນການອ່ານຈາກ @param int length
ຈໍານວນສູງສຸດຂອງໄບຕ໌ທີ່ຈະກັບຄືນ @return array ຜົນ [string
bytes, int offset, bool overflow]
tailProcessStderrLog(ຊື່, ຊົດເຊີຍ, ຄວາມຍາວ)
ສະຫນອງວິທີການທີ່ມີປະສິດທິພາບຫຼາຍທີ່ຈະຫາງບັນທຶກ (stderr) ຫຼາຍກວ່າ
readProcessStderrLog(). ໃຊ້ readProcessStderrLog() ເພື່ອອ່ານ chunks ແລະ
tailProcessStderrLog() ໄປຫາຫາງ.
ການຮ້ອງຂໍ (ຄວາມຍາວ) bytes ຈາກບັນທຶກຂອງ (ຊື່), ເລີ່ມຕົ້ນທີ່ (ຊົດເຊີຍ). ຖ້າ
ຂະຫນາດຂອງບັນທຶກທັງຫມົດແມ່ນໃຫຍ່ກວ່າ (ຊົດເຊີຍ + ຄວາມຍາວ), ທຸງ overflow
ຖືກຕັ້ງແລະ (ຊົດເຊີຍ) ຈະຖືກເພີ່ມຂຶ້ນໂດຍອັດຕະໂນມັດເພື່ອຈັດຕໍາແຫນ່ງ buffer
ໃນຕອນທ້າຍຂອງບັນທຶກ. ຖ້າມີຫນ້ອຍກວ່າ (ຄວາມຍາວ) bytes, the
ຈຳນວນສູງສຸດຂອງໄບຕ໌ທີ່ມີຢູ່ຈະຖືກສົ່ງຄືນ. (ຊົດເຊີຍ) ກັບຄືນມາແມ່ນ
ເປັນການຊົດເຊີຍສຸດທ້າຍສະເໝີໃນບັນທຶກ +1.
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name')
@param int offset ຊົດເຊີຍເພື່ອເລີ່ມຕົ້ນການອ່ານຈາກ @param int length
ຈໍານວນສູງສຸດຂອງໄບຕ໌ທີ່ຈະກັບຄືນ @return array ຜົນ [string
bytes, int offset, bool overflow]
clearProcessLogs(ຊື່)
ລຶບບັນທຶກ stdout ແລະ stderr ສໍາລັບຂະບວນການທີ່ມີຊື່ແລະເປີດພວກມັນຄືນໃຫມ່.
@param string name ຊື່ຂະບວນການ (ຫຼື 'group:name') @return
ຜົນໄດ້ຮັບ boolean ສະເຫມີ True ເວັ້ນເສຍແຕ່ຄວາມຜິດພາດ
clearAllProcessLog()
ລຶບໄຟລ໌ບັນທຶກຂະບວນການທັງໝົດ
@return array ຜົນໄດ້ຮັບ array ຂອງໂຄງສ້າງຂໍ້ມູນສະຖານະຂະບວນການ
ລະບົບ ວິທີການ
ລະດັບ supervisor.xmlrpc.SystemNamespaceRPCIInterface(namespaces)
ລາຍການວິທີການ()
ສົ່ງຄືນອາເຣທີ່ສະແດງຊື່ວິທີການທີ່ມີຢູ່
@return array ຜົນໄດ້ຮັບ array ຂອງ method names available (strings).
ວິທີການຊ່ວຍເຫຼືອ (ຊື່)
ສົ່ງຄືນສະຕຣິງທີ່ສະແດງເອກະສານວິທີການ
@param string name ຊື່ຂອງວິທີການ. @return string ຜົນ ໄດ້
ເອກະສານສໍາລັບຊື່ວິທີການ.
ວິທີການລາຍເຊັນ(ຊື່)
ສົ່ງຄືນອາເຣທີ່ອະທິບາຍລາຍເຊັນວິທີການໃນຮູບແບບ [rtype,
ptype, ptype ...] ບ່ອນທີ່ rtype ແມ່ນປະເພດຂໍ້ມູນກັບຄືນຂອງວິທີການ, ແລະ
ptypes ແມ່ນປະເພດຂໍ້ມູນພາລາມິເຕີທີ່ວິທີການຍອມຮັບໃນວິທີການ
ຄໍາສັ່ງໂຕ້ຖຽງ.
@param string name ຊື່ຂອງວິທີການ. @return array ຜົນ ໄດ້
ຜົນໄດ້ຮັບ.
Multicall(ໂທ)
ປະມວນຜົນ array ຂອງການໂທ, ແລະສົ່ງຄືນ array ຂອງຜົນໄດ້ຮັບ. ໂທຄວນ
be structs of the form {'methodName': string, 'params': array}. ແຕ່ລະ
ຜົນໄດ້ຮັບຈະເປັນ array ລາຍການດຽວທີ່ມີຄ່າຜົນໄດ້ຮັບ, ຫຼື a
ໂຄງສ້າງຂອງແບບຟອມ {'faultCode': int, 'faultString': string}. ນີ້ແມ່ນ
ມີປະໂຫຍດໃນເວລາທີ່ທ່ານຕ້ອງການໂທຫາຂະຫນາດນ້ອຍຫຼາຍໂດຍບໍ່ມີການຫຼາຍຮອບ
ການເດີນທາງ.
@param array calls array ຂອງ call requests @return array ຜົນ An
array ຂອງຜົນໄດ້ຮັບ
PLUGINS
ດັດສະນີ ແລະ ຕາຕະລາງ
· genindex
· modindex
· ຄົ້ນຫາ
ໃຊ້ຜູ້ຄຸມງານອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net