Saya baru saja menginstal dengan pip tetapi ketika saya mencoba menjalankannya, saya mendapatkan kesalahan aneh di bawah ini. Ada ide apa yang bisa terjadi? Apakah itu bug?
$ sudo supervisorctl
kesalahan:
Apa yang ada di supervisord.conf
? Biasanya /etc/supervisor/supervisord.conf
.
Saya akan menutup ini karena kurangnya aktivitas. Jika Anda masih mengalami masalah ini dan dapat memberikan informasi lebih lanjut, kami dapat membuka kembali.
Saya mendapatkan kesalahan yang sama persis pada supervisor yang baru diinstal dengan file konfigurasi default sebagai output oleh echo_supervisord_conf. Saya menginstal file konfigurasi secara lokal, dan menjalankannya sebagai pengguna biasa dan bukan root:
$ supervisorctl
error: <class 'socket.error'>, [Errno 97] Address family not supported by protocol: file: /usr/lib/python2.7/socket.py line: 571
supervisor>
@bbirand jika Anda menjalankan supervisorctl -c /explicit/path/to/config/file/echoed/out/supervisord.conf apakah Anda mendapatkan kesalahan yang sama? Jika demikian, dapatkah Anda memasukkan konten file itu dalam komentar terpisah?
Yup, itu memperbaikinya. Saya tidak menyadari bahwa saya harus meneruskan file konfigurasi ke panggilan supervisorctl juga, tetapi tentu saja masuk akal.. Maaf untuk alarm yang salah.
(Meskipun pesan kesalahan yang lebih deskriptif daripada koneksi soket yang gagal akan lebih membantu. Saya bahkan tidak memiliki file /etc/supervisor.conf
, jadi saya akan membayangkan supervisorctl
akan gagal dengan " File konfigurasi tidak ditemukan" kesalahan atau sesuatu.)
Kesalahan "tidak ditemukan" tertentu harus dikeluarkan jika supervisord tidak dapat menemukan file konfigurasi. Di versi yang lebih baru, ada juga kesalahan "tidak dapat dibaca" yang berbeda jika supervisord menemukannya tetapi tidak dapat membacanya. Ketika -c
tidak digunakan untuk menentukan jalur eksplisit ke file konfigurasi, supervisord akan mencarinya .
supervisorctl juga akan mencari file konfigurasi. Sebelum Supervisor 3.0b2, file konfigurasi selalu diperlukan dan akan memberikan kesalahan seperti dijelaskan di atas. Di 3.0b2 dan yang lebih baru, supervisorctl dapat digunakan tanpa file konfigurasi. Dalam hal ini, info koneksi harus diberikan dalam opsi baris perintah. Saya pikir jika tidak dapat menemukan file konfigurasi, dan Anda tidak memberikan opsi koneksi, defaultnya adalah http://localhost :9001 tanpa auth. Saya tidak yakin tentang itu.
Kedengarannya seperti supervisorctl sedang mencari dan menemukan file konfigurasi lain di sistem Anda, tetapi file itu berisi baris yang menyebabkan kesalahan Address family not supported by protocol
. Bisa juga supervisorctl menggunakan defaultnya tetapi default menyebabkan kesalahan ini pada sistem Anda. Akan sangat membantu jika kita bisa mendapatkan info lebih lanjut. Terakhir kali ini dilaporkan, kami tidak mengetahuinya.
_Edit: Perilaku supervisorctl yang diklarifikasi._
Menarik. Apa yang terjadi dengan saya adalah bahwa ada file supervisor.conf
di direktori saat ini (yang default). Ketika saya menjalankan perintah sebagai supervisorctl
saya mendapatkan kesalahan, tetapi ketika saya beralih menggunakan supervisorctl -c supervisor.conf
, saya tidak akan mendapatkan kesalahan lagi. Saya juga harus mencatat bahwa ini dari supervisor yang diinstal di virtualenv.
Dari apa yang saya pahami dari deskripsi Anda, jika file konfigurasi ditemukan di direktori saat ini, itu harus digunakan, dan perilakunya harus sama dengan menjalankannya secara eksplisit dengan sakelar -c
. Itu entah bagaimana bukan apa yang terjadi di pihak saya.
Tampaknya komit di # 95 memperkenalkan perilaku yang salah (khususnya, komit ini: https://github.com/JensRantil/supervisor/commit/3385f17a9c465359be3f504c611700ff60bea0d4). Itu sudah ada sejak akhir 2011, dan membalikkan urutan pencarian sehingga $CWD/etc/supervisord.conf
akan ditemukan sebelum $CWD/supervisord.conf
.
Saya akan mencoba memperbaikinya di cabang 3.1.X dan master.
Ups, tidak, komit itu tidak bercacat. Itu hanya menyentuh baris yang merupakan bagian dari bug yang sudah ada sebelumnya, atau setidaknya ketidaksepakatan antara dokumen dan kode.
Besar! Tapi FWIW, saya pasti tidak punya file $CWD/etc/supervisor.conf
. Jadi saya tidak yakin apakah bug ini menjelaskan perbedaan yang saya amati saat menggunakan sakelar -c
.
Tidak yakin apakah ada masalah yang lebih baik untuk melaporkan ini, tetapi tampaknya terkait:
Jika saya memiliki supervisord.conf di direktori saat ini, tetapi tidak memiliki bagian supervisorctl, maka tidak mungkin menjalankan supervisorctl dengan parameter baris perintah:
$ 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
Menjalankan perintah yang sama di direktori yang berbeda berfungsi dengan baik.
Saya menyarankan untuk mengizinkan argumen baris perintah eksplisit untuk menimpa file konfigurasi yang terdeteksi secara implisit, atau memberi tahu pengguna bahwa mereka diabaikan.
versi 3.1.3
Saya memiliki masalah yang sama pada centos, di conf saya, saya telah menambahkan bagian [supervisord]
selain conf program saya.
$ 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
Saya memperbaiki masalah dengan menggabungkan echo_supervisord_conf
ke file konfigurasi saya.
Saya biasanya menamai file sub config sebagai supervisord.conf
dalam proyek. Ketika Anda menjalankan supervisorctl
di folder proyek itu, itu akan menganggap bahwa supervisord.conf
adalah file konfigurasi utama, yang juga menyebabkan kesalahan ini.
Hai, saya menggunakan supervisor di Mac untuk menulis file konfigurasi untuk menjalankan perintah
supervisord - c/Users/wujunze/etc/supervisor. The conf
Kemudian jalankan supervisorctl
melaporkan kesalahan ini:
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
Saya juga memiliki masalah yang sama
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>
saya juga.
Apakah ada solusi?
sudo service supervisor start
bekerja untuk saya. Daemon tidak berjalan
bagi saya solusinya adalah, daemon tidak berjalan
sudo systemctl status supervisord
sudo systemctl enable supervisord
sudo systemctl start supervisord
siap
sudo supervisorctl reread
sudo supervisorctl start process:*
Saya menemukan masalah ini dengan kesalahan serupa, saat menjalankan dalam wadah Docker:
# supervisorctl
error: <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575
Masalah dalam kasus saya bukanlah supervisord.conf
hilang di direktori saat ini, dan -c supervisord.conf
tidak membantu. Masalahnya adalah supervisord.conf
di direktori saat ini terlalu tipis, dan kehilangan hal-hal yang dibutuhkan supervisorctl
. Inilah yang harus saya tambahkan:
[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
buruh pelabuhan : kesalahan:
Buruh pelabuhan:
kesalahan:
Perintah '/bin/sh -c supervisorctl update' mengembalikan kode bukan nol: 2
Cukup buat konfigurasi default
Kuncinya di sini adalah https://github.com/Supervisor/supervisor/issues/376#issuecomment -404385767. Jika Anda menyiapkan file konfigurasi supervisord secara manual dan tidak menyertakan komponen server, Anda tidak dapat menghubungkannya melalui supervisorctl.
saya sudah
Saya mengalami masalah yang sama, tetapi skenario penggunaannya adalah bahwa lingkungan virtual anaconda, setelah pengguna non-root dimulai, pemuatan ulang berikutnya gagal melalui pengguna non-root.
Kesalahannya adalah sebagai berikut:
kesalahan:
Apakah supervisor memerlukan startup pengguna yang memiliki hak istimewa?
Saya menemukan masalah ini dengan kesalahan serupa, saat menjalankan dalam wadah Docker:
# supervisorctl error: <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575
Masalah dalam kasus saya bukanlah
supervisord.conf
hilang di direktori saat ini, dan-c supervisord.conf
tidak membantu. Masalahnya adalahsupervisord.conf
di direktori saat ini terlalu tipis, dan kehilangan hal-hal yang dibutuhkansupervisorctl
. Inilah yang harus saya tambahkan:[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
tandai~
Saya sudah mencoba saran di atas, dan saya mendapatkan unix:///var/run/supervisor.sock no such file
saat mengonfigurasi file supervisord.conf
seperti yang disarankan. Saya di dalam wadah Docker yang menjalankan Ubuntu 20.04
Menghadapi python file not found an error, code=exited, status=2
setelah saya mencoba dengan dokumen resmi tetapi masih sama.
Saya telah mencoba begitu banyak solusi untuk aplikasi laravel saya.
Tetapi akhirnya, saya telah mencoba dengan solusi saya.
Berikut ini contoh untuk kodenya:
[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
Ref: https://laravel.com/docs/7.x/queues#supervisor -configuration
https://stackoverflow.com/questions/41286526/supervisor-no-such-file-socket-py/65791261#65791261
Saran dari @javabrett sayangnya menyebabkan kesalahan seperti berikut untuk dicatat di setiap startup:
CRIT Server 'unix_http_server' berjalan tanpa pemeriksaan otentikasi HTTP
Seperti yang dibahas dalam tiket #717, hal ini dapat dihindari dengan mengamankan konfigurasi. Sebagai contoh:
[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
Komentar yang paling membantu
Saya menemukan masalah ini dengan kesalahan serupa, saat menjalankan dalam wadah Docker:
Masalah dalam kasus saya bukanlah
supervisord.conf
hilang di direktori saat ini, dan-c supervisord.conf
tidak membantu. Masalahnya adalahsupervisord.conf
di direktori saat ini terlalu tipis, dan kehilangan hal-hal yang dibutuhkansupervisorctl
. Inilah yang harus saya tambahkan: