unix: ///var/run/supervisor.sock ไม่มีไฟล์ดังกล่าว


5

ฉันใช้Supervisordบนเซิร์ฟเวอร์ Ubuntu 14.04 ของฉันและทุกอย่างทำงานได้ดี ผมปรับใช้โดยใช้การผลักดันคอมไพล์และเมื่อใช้งานผมยังต้องรีสตาร์ทเซิร์ฟเวอร์แอพลิเคชันของฉัน ( gunicorn ) supervisorctlซึ่งผมคาดคะเนไม่สามารถใช้

un supervisord.confgunicorn ของฉันถูกกำหนดดังนี้:

[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUIT

และฉันเปิดใช้งานsupervisorctlเช่นนี้:

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

ฉันเริ่มหัวหน้างานโดยใช้

sudo supervisord -c /home/imb/imb/supervisord.conf

เท่าที่ฉันเข้าใจฉันควรจะสามารถเริ่มต้น gunicorn ใหม่โดยใช้คำสั่งsupervisorctl restart gunicornได้ แต่เมื่อฉันได้รับ

$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file

ฉันตรวจสอบแล้วและไม่มีไฟล์/var/run/supervisor.sockอยู่แม้ว่าฉันจะแน่ใจว่าหัวหน้างานกำลังทำงานจริง:

$ ps -A | grep supervisor
27211 ?        00:00:00 supervisord

ไม่มีใครรู้ว่าทำไม/var/run/supervisor.sockไฟล์จึงไม่ถูกสร้างขึ้นแม้ว่าหัวหน้างานจะทำงานได้อย่างชัดเจนหรือไม่ ยินดีต้อนรับเคล็ดลับทั้งหมด!


คุณเห็นโพสต์นี้หรือไม่ stackoverflow.com/questions/10716159/… คุณลองใช้ oslutions แล้วหรือยัง? พวกเขาทำงานหรือไม่ หากพวกเขาทำไม่ได้พวกเขาจะล้มเหลวได้อย่างไร
MariusMatutiae

คำตอบ:


5

เอาล่ะหลังจากไปยุ่งกันอีกฉันพบสิ่งที่ฉันทำผิด

ปรากฎบรรทัดsupervisorctlด้านล่างเพียงบอกsupervisorctlว่าสามารถหาไฟล์ซ็อกเก็ตได้จากที่ใด

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

ด้านบนของไฟล์มีอีกสองบรรทัดที่กำหนดว่าไฟล์จะถูกสร้างขึ้นจริง:

[unix_http_server]
file=/tmp/supervisor.sock

ที่คุณสามารถดูไฟล์ที่สร้างซ็อกเก็ตใน/tmp/ขณะที่พยายามที่จะอ่านได้จากsupervisorctl /var/run/ฉันเปลี่ยนบรรทัดสุดท้ายเป็นfile=/var/run/supervisor.sockและตอนนี้มันทำงานได้อย่างสวยงาม

ฉันหวังว่าคำตอบนี้อาจช่วยให้คนอื่นจัดการกับปัญหาเดียวกัน

นอกจากนี้คุณสามารถตรวจสอบลิงก์ที่ให้บริการโดย @MariusMatutiae ในความคิดเห็น: https://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu


2
ผมเห็นว่าหน้าผมแนะนำไม่ได้มีวิธีการแก้ปัญหาที่เหมาะสมสำหรับคุณ stackoverflow.com/a/28469044/2796243 ฉันดีใจที่เห็นว่าฉันสามารถช่วยได้ไชโย
MariusMatutiae

@MariusMatutiae - ใช่ฉันอาจไม่ได้ให้การยอมรับที่คุณสมควรได้รับ ขอบคุณมากสำหรับคุณ! โปรดทราบว่าฉันยังมีความสุขที่จะให้คะแนน 50 ค่าหัวแก่คุณ เพียงแค่เขียนคำตอบแล้วฉันจะให้รางวัลกับคุณ .. :-)
kramer65

ขอบคุณดีมากของคุณ แต่ฉันไม่ได้จริงๆหาทางแก้ปัญหา เป็นเพียงว่าหน้าเว็บด้านบนมีวิธีแก้ไขปัญหาที่แตกต่างกันหลายวิธีหนึ่งเดียวเท่านั้น (เป็นสุข) ที่นำมาใช้กับคุณ แต่เป็นประโยชน์กับผู้อื่นที่อ่านโพสต์นี้เพื่อทราบว่าอาจมีวิธีแก้ไขปัญหาอื่น ๆ นั่นคือทั้งหมดที่ ไชโย
MariusMatutiae

ฉันประสบปัญหา "ตลก" อีกครั้ง อย่าใช้โฟลเดอร์ tmp สำหรับไฟล์ซ็อกเก็ตเนื่องจากไฟล์จะถูกทำความสะอาดโดยอัตโนมัติและไฟล์ซ็อกเก็ตจะถูกลบจนกว่าผู้ดูแลระบบจะรีสตาร์ทครั้งถัดไป
StalkAlex

3

สำหรับผู้ใช้ที่มีรายการเดียวกันสำหรับทั้งสอง

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

&

[unix_http_server]
file=/tmp/supervisor.sock

ทำตามขั้นตอนด้านล่างเพื่อแก้ไขปัญหา -

  1. ลบไฟล์ .ock ออกจาก / tmp
  2. เรียกใช้คำสั่ง 'supervisord' นี่จะสร้างไฟล์ sock ขึ้นมาใหม่
  3. เรียกใช้ 'supervisorctl -i' เพื่อตรวจสอบสถานะของบริการ

หวังว่านี่จะช่วยคุณได้!


-1

อัพเกรดไป MacOS เซีย10.12.5

ฉันประสบปัญหาเดียวกันและทุกอย่างถูกต้องในไฟล์กำหนดค่าเช่นกัน หลังจากนั้นฉันคิดว่าฉันได้ย้ายไปเป็น MacOS Sierra 10.12.3ล่าสุดแล้วก็ไม่ทำงาน มันใช้งานได้กับเวอร์ชั่นเก่ากว่า แต่ไม่ใช่ใน MacOS รุ่นนี้ จากนั้นฉันอัปเกรดเป็น MacOS Sierra 10.12.5และดูเหมือนว่าทุกอย่างจะทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.