لقد قمت للتو بتثبيت النقطة ولكن عندما أحاول تشغيلها ، أتلقى الخطأ الغريب أدناه. أي أفكار ماذا يمكن أن يحدث؟ هل هذه حقيب؟
sudo Supervisorctl
خطأ:
ماذا يوجد في supervisord.conf
؟ عادة /etc/supervisor/supervisord.conf
.
سأغلق هذا بسبب نقص النشاط. إذا كنت لا تزال تواجه هذه المشكلة ويمكنك تقديم المزيد من المعلومات ، فيمكننا إعادة الفتح.
أحصل على نفس الخطأ بالضبط على مشرف تم تثبيته حديثًا مع ملف التكوين الافتراضي كإخراج بواسطة echo_supervisord_conf. لقد قمت بتثبيت ملف التكوين محليًا ، وأقوم بتشغيله كمستخدم عادي وليس كمستخدم جذر:
$ supervisorctl
error: <class 'socket.error'>, [Errno 97] Address family not supported by protocol: file: /usr/lib/python2.7/socket.py line: 571
supervisor>
bbirand إذا قمت بتنفيذ supervisorctl -c /explicit/path/to/config/file/echoed/out/supervisord.conf ، فهل تحصل على نفس الخطأ؟ إذا كان الأمر كذلك ، هل يمكنك تضمين محتويات هذا الملف في تعليق منفصل؟
نعم ، هذا أصلحها. لم أكن أدرك أنني اضطررت إلى تمرير ملف التكوين إلى المشرف على مكالمة ctl أيضًا ، ولكن بالطبع كان ذلك منطقيًا .. آسف للإنذار الخاطئ.
(على الرغم من أن ظهور رسالة خطأ وصفية أكثر بدلاً من فشل اتصال المقبس سيكون أكثر فائدة. ليس لدي حتى ملف /etc/supervisor.conf
، لذلك كنت أتخيل أن supervisorctl
سيفشل مع " لم يتم العثور على ملف التكوين "خطأ أو شيء من هذا القبيل.)
يجب إرسال خطأ "غير موجود" محدد إذا لم يتمكن المشرف من العثور على ملف تكوين. في الإصدارات الأحدث ، هناك أيضًا خطأ مختلف "غير قابل للقراءة" إذا وجد المشرف واحدًا ولكن لا يمكنه قراءته. عندما لا يتم استخدام -c
لتحديد مسار واضح لملف التكوين ، سيبحث المشرف واحد .
سيبحث المشرف أيضًا عن ملف التكوين. قبل المشرف 3.0b2 ، كان ملف التكوين مطلوبًا دائمًا وسيعطي خطأ كما هو موضح أعلاه. في الإصدار 3.0b2 والإصدارات الأحدث ، يمكن استخدام supervisorctl بدون ملف تكوين. في هذه الحالة ، يجب تقديم معلومات الاتصال في خيارات سطر الأوامر. أعتقد أنه إذا لم يتمكن من العثور على ملف تكوين ، ولم تعط خيارات الاتصال ، فسيتم تعيينه افتراضيًا على http: // localhost : 9001 بدون مصادقة. لست متأكدا من ذلك.
يبدو أن supervisorctl يبحث عن ملف تهيئة آخر على نظامك ويعثر عليه ، ولكن هذا الملف يحتوي على سطر يتسبب في حدوث الخطأ Address family not supported by protocol
. يمكن أن يكون هذا المشرف يستخدمه الافتراضي ولكن الافتراضي يتسبب في حدوث هذا الخطأ على نظامك. سيكون من المفيد لو تمكنا من الحصول على مزيد من المعلومات. آخر مرة تم الإبلاغ عن ذلك لم نكتشف ذلك.
_تعديل: توضيح سلوك المشرف.
مثير للإعجاب. ما كان يحدث معي هو أنه كان هناك ملف supervisor.conf
في الدليل الحالي (الدليل الافتراضي). عندما أقوم بتشغيل الأمر كـ supervisorctl
حصلت على الخطأ ، ولكن عندما قمت بالتبديل إلى استخدام supervisorctl -c supervisor.conf
، لن أحصل على الخطأ بعد الآن. يجب أن أشير أيضًا إلى أن هذا من مشرف مثبت في Virtualenv.
مما أفهمه من الوصف الخاص بك ، إذا تم العثور على ملف التكوين في الدليل الحالي ، فيجب استخدامه ، ويجب أن يكون السلوك هو نفسه تشغيله بشكل صريح باستخدام المحول -c
. هذا بطريقة أو بأخرى ليس ما يحدث في نهايتي.
يبدو أن الالتزام في # 95 أدخل سلوكًا غير صحيح (على وجه الخصوص ، هذا الالتزام: https://github.com/JensRantil/supervisor/commit/3385f17a9c465359be3f504c611700ff60bea0d4). لقد كان هناك منذ نهاية عام 2011 ، وعكس ترتيب البحث بحيث يتم العثور على $CWD/etc/supervisord.conf
قبل $CWD/supervisord.conf
.
سأحاول إصلاح هذا في كل من الفرع 3.1.X والماجستير.
عفوًا ، لا ، هذا ارتكاب بلا لوم. لقد لامس فقط الخطوط التي كانت جزءًا من خطأ موجود مسبقًا ، أو على الأقل خلاف بين المستندات والرمز.
رائعة! لكن FWIW ، بالتأكيد لم يكن لدي ملف $CWD/etc/supervisor.conf
. لذلك لست متأكدًا مما إذا كان هذا الخطأ يفسر التناقض الذي لاحظته عند استخدام مفتاح التبديل -c
.
لست متأكدًا مما إذا كانت هناك مشكلة أفضل للإبلاغ عنها ، ولكن يبدو أنها ذات صلة:
إذا كان لديّ supervisord.conf في الدليل الحالي ، لكن لا يحتوي على قسم supervisorctl ، فمن المستحيل تشغيل supervisorctl مع معلمات سطر الأوامر:
$ supervisorctl -s "http://192.168.1.1:9001" -i
Error: .ini file does not include supervisorctl section
For help, use /usr/local/bin/supervisorctl -h
تشغيل نفس الأمر في دليل مختلف يعمل بشكل جيد.
أقترح إما السماح لوسائط سطر الأوامر الصريحة بتجاوز ملف التكوين المكتشف ضمنيًا ، أو إبلاغ المستخدم بأنه تم تجاهلها.
الإصدار 3.1.3
لدي نفس المشكلة في centos ، في بلدي conf لقد أضفت قسمًا [supervisord]
بالإضافة إلى برنامج conf الخاص بي.
$ easy_install supervisor
$ supervisord -v
3.2.1
$ supervisord -c /etc/supervisord.conf
$ supervisorctl restart program:secor -c /etc/supervisord.conf
Error: .ini file does not include supervisorctl section
For help, use /bin/supervisorctl -h
لقد أصلحت المشكلة عن طريق ربط echo_supervisord_conf
بملف التكوين الخاص بي.
عادةً ما أقوم بتسمية ملف التكوين الفرعي كـ supervisord.conf
في المشروع. عند تنفيذ supervisorctl
في مجلد المشروع هذا ، فإنه يعتبر أن supervisord.conf
هو ملف التكوين الرئيسي ، مما يتسبب في حدوث هذا الخطأ أيضًا.
مرحبًا ، لقد استخدمت المشرف على جهاز Mac لكتابة ملف التكوين لتنفيذ الأمر
supervisord - c/Users/wujunze/etc/supervisor. The conf
ثم أبلغ تنفيذ supervisorctl
عن هذا الخطأ:
http://localhost:9001 refused the connection
The supervisor > update
Error: < class 'socket. The error >, [61] Errno Connection refused: file: / System/Library/Frameworks/Python framework Versions / 2.7 / lib/python2.7 / socket. Py line: 575
ولدي أيضا نفس المشكلة
sudo supervisorctl -c /etc/supervisor/supervisord.conf
error: <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575
supervisor>
أنا أيضا.
هل هناك حل؟
عمل لي sudo service supervisor start
. لم يكن البرنامج الخفي يعمل
بالنسبة لي كان الحل هو أن البرنامج الخفي لم يكن قيد التشغيل
sudo systemctl status supervisord
sudo systemctl enable supervisord
sudo systemctl start supervisord
جاهز
sudo supervisorctl reread
sudo supervisorctl start process:*
واجهت هذه المشكلة مع خطأ مشابه ، عند التشغيل في حاوية Docker:
# supervisorctl
error: <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575
لم تكن المشكلة في حالتي فقدان supervisord.conf
في الدليل الحالي ، و -c supervisord.conf
لم يساعد. كانت المشكلة أن supervisord.conf
في الدليل الحالي كان ضعيفًا جدًا ، ويفقد الأشياء التي يحتاجها supervisorctl
. هذا ما كان عليّ إضافته:
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
عامل ميناء: خطأ:
عامل ميناء:
خطأ:
أعاد الأمر '/ bin / sh -c supervisorctl update' رمزًا غير صفري: 2
فقط قم بإنشاء التكوين الافتراضي
المفتاح هنا هو https://github.com/Supervisor/supervisor/issues/376#issuecomment -404385767. إذا كنت تقوم بإعداد ملف تكوين المشرف يدويًا ولم تقم بتضمين مكونات الخادم ، فلا يمكنك الاتصال به عبر المشرف ctl.
أملك
لقد واجهت نفس المشكلة ، ولكن سيناريو الاستخدام هو أن البيئة الافتراضية للأناكوندا ، بعد بدء المستخدم غير الجذر ، تفشل عملية إعادة التحميل اللاحقة من خلال المستخدم غير الجذر.
الخطأ كالتالي:
خطأ:
هل يتطلب المشرف بدء تشغيل مستخدم متميز؟
واجهت هذه المشكلة مع خطأ مشابه ، عند التشغيل في حاوية Docker:
# supervisorctl error: <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575
لم تكن المشكلة في حالتي فقدان
supervisord.conf
في الدليل الحالي ، و-c supervisord.conf
لم يساعد. كانت المشكلة أنsupervisord.conf
في الدليل الحالي كان ضعيفًا جدًا ، ويفقد الأشياء التي يحتاجهاsupervisorctl
. هذا ما كان عليّ إضافته:[unix_http_server] file=/var/run/supervisor.sock chmod=0700 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock
علامة ~
لقد جربت الاقتراحات أعلاه ، وأحصل على unix:///var/run/supervisor.sock no such file
عند تكوين ملف supervisord.conf
كما هو مقترح. أنا داخل حاوية Docker تعمل بنظام التشغيل Ubuntu 20.04
مواجهة python file not found an error, code=exited, status=2
بمجرد أن أحاول استخدام المستند الرسمي ولكن لا يزال كما هو.
لقد جربت العديد من الحلول لتطبيق Laravel الخاص بي.
لكن في النهاية ، حاولت مع الحل الخاص بي.
هذا مثال على الكود:
[program:dev-worker]
process_name=%(program_name)s_%(process_num)02d
command=cd /var/www/html/example.com && php artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=ubuntu
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/html/example.com/storage/logs/laravel.log
stopwaitsecs=3600
المرجع: https://laravel.com/docs/7.x/queues#supervisor -configuration
https://stackoverflow.com/questions/41286526/supervisor-no-such-file-socket-py/65791261#65791261
يؤدي الاقتراح المقدم من
يعمل خادم CRIT 'unix_http_server' دون أي فحص لمصادقة HTTP
كما تمت مناقشته في التذكرة رقم 717 ، يمكن تجنب ذلك عن طريق تأمين التكوين. على سبيل المثال:
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700
username = dummy
password = impossibleToGuess
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
username = dummy
password = impossibleToGuess
التعليق الأكثر فائدة
واجهت هذه المشكلة مع خطأ مشابه ، عند التشغيل في حاوية Docker:
لم تكن المشكلة في حالتي فقدان
supervisord.conf
في الدليل الحالي ، و-c supervisord.conf
لم يساعد. كانت المشكلة أنsupervisord.conf
في الدليل الحالي كان ضعيفًا جدًا ، ويفقد الأشياء التي يحتاجهاsupervisorctl
. هذا ما كان عليّ إضافته: