ฉันกำลังตั้งค่า Supervisord ให้เรียกใช้สคริปต์สองสามรายการตลอดไป
ถ้าฉันเริ่ม Supervisord โดยไม่มีโปรแกรมใดๆ (ไฟล์ *.conf ใน /etc/supervisor/conf.d) มันจะทำงานได้อย่างสมบูรณ์
root@networking:~# systemctl รีสตาร์ทหัวหน้างาน
root@networking:~# Supervisorctl
หัวหน้างาน>
ไฟล์กำหนดค่าด้านล่าง:
; ไฟล์คอนฟิกของ Supervisor
[ยูนิกซ์_http_เซิร์ฟเวอร์]
ไฟล์=/var/run/supervisor.sock ; (เส้นทางไปยังไฟล์ซ็อกเก็ต)
chmod=0700 ; โหมดไฟล์ sockef (ค่าเริ่มต้น 0700)
[หัวหน้างาน]
logfile=/var/log/supervisor/supervisord.log ; (ไฟล์บันทึกหลัก ค่าเริ่มต้น $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile; default Supervisord.pid)
childlogdir=/var/log/หัวหน้างาน ; ('AUTO' child log dir, $TEMP เริ่มต้น)
; ส่วนด้านล่างจะต้องอยู่ในไฟล์ปรับแต่งสำหรับ RPC
; (supervisorctl/เว็บอินเตอร์เฟส) ในการทำงาน อาจมีอินเตอร์เฟสเพิ่มเติม
; เพิ่มโดยกำหนดในส่วน rpcinterface แยกต่างหาก: ส่วน
[rpcinterface:หัวหน้างาน]
Supervisor.rpcinterface_factory = Supervisor.rpcinterface:make_main_rpcinterface
[ไอเน็ต_http_เซิร์ฟเวอร์]
พอร์ต=*:9001
ชื่อผู้ใช้ = ฟู
รหัสผ่าน = บาร์
[หัวหน้างาน]
serverurl=unix:///var/run/supervisor.sock ; ใช้ unix:// URL สำหรับซ็อกเก็ตยูนิกซ์
; ส่วน [รวม] สามารถมีการตั้งค่า "ไฟล์" เท่านั้น นี้
; การตั้งค่าสามารถแสดงรายการไฟล์ได้หลายไฟล์ (คั่นด้วยช่องว่างหรือ
; ขึ้นบรรทัดใหม่) นอกจากนี้ยังสามารถมีสัญลักษณ์แทน ชื่อไฟล์คือ
; ตีความว่าสัมพันธ์กับไฟล์นี้ ไฟล์รวม *ไม่สามารถ*
; รวมไฟล์เอง
[รวม]
ไฟล์ = /etc/supervisor/conf.d/*.conf
ฉันยังเห็นหน้าจอ UI ของเว็บดังต่อไปนี้:
ไฟล์บันทึกแสดง:
2022-03-25 22:21:47,391 หัวหน้างาน CRIT กำลังทำงานในฐานะรูท สิทธิ์ไม่ลดลงเนื่องจากไม่มีการระบุผู้ใช้ในไฟล์กำหนดค่า หากคุณต้องการรันในฐานะรูท คุณสามารถตั้งค่า user=root ในไฟล์ปรับแต่งเพื่อหลีกเลี่ยงข้อความนี้
2022-03-25 22:21:47,391 คำเตือน ไม่มีไฟล์ที่ตรงกับการรวม "/etc/supervisor/conf.d/*.conf"
2022-03-25 22:21:47,399 INFO RPC อินเทอร์เฟซ 'หัวหน้างาน' เริ่มต้นแล้ว
2022-03-25 22:21:47,400 INFO RPC อินเทอร์เฟซ 'หัวหน้างาน' เริ่มต้นแล้ว
2022-03-25 22:21:47,400 เซิร์ฟเวอร์ CRIT 'unix_http_server' ทำงานโดยไม่มีการตรวจสอบสิทธิ์ HTTP
2022-03-25 22:21:47,400 หัวหน้างาน INFO เริ่มต้นด้วย pid 39887
อย่างไรก็ตาม หากฉันเพิ่มไฟล์โปรแกรมเข้าไป /etc/supervisor/conf.d/ez_send_email.conf
[โปรแกรม:ez_send_email]
command=php /var/www/html/ez/index.php ผู้ปฏิบัติงาน process_email_queue
ผู้ใช้ = ราก
autostart = จริง
รีสตาร์ทอัตโนมัติ = จริง
startecs=5
stdout_logfile=/var/log/supervisord/ez_send_email_output.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/log/supervisord/ez_send_email_error.log
stderr_logfile_maxbytes=10MB
ฉันได้รับผลลัพธ์ต่อไปนี้เมื่อทำงาน Supervisorctl
root@networking:~# systemctl รีสตาร์ทหัวหน้างาน
root@networking:~# Supervisorctl
unix:///var/run/supervisor.sock ไม่มีไฟล์ดังกล่าว
หัวหน้างาน>
นอกจากนี้ UI ของเว็บยังแสดง:
ไม่มีอะไรในไฟล์บันทึกเช่นกัน ฉันยังพยายามเปลี่ยน ผู้ใช้ = ราก สำหรับผู้ใช้ที่ไม่ใช่รูท แต่ก็ไม่ได้ผลเช่นกัน
เรียกใช้คำสั่งด้วยตนเอง
php /var/www/html/ez/index.php คนงาน process_email_queue
ยังใช้งานได้ดี ดูเหมือนจะไม่มีปัญหาใด ๆ กับคำสั่ง
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมจริงๆ