Supervisor: Perbedaan antara membaca ulang, memuat ulang, memulai ulang, memperbarui?

Dibuat pada 13 Feb 2016  ·  30Komentar  ·  Sumber: Supervisor/supervisor

Mungkin saya melewatkannya tetapi apakah ada penjelasan yang bagus tentang perbedaan antara keempat perintah ini? Saya tidak melihat mereka dibahas dalam dokumentasi online supervisord. Saya perhatikan di ServerFault dan Stackoverflow bahwa pengguna lain juga tidak memahami perbedaan mereka.

Misalnya, jika saya mengubah konfigurasi di satu bagian program, saya tahu saya harus melakukan "supervisorctl reread" agar perubahan tersebut tersedia. Tapi bagaimana Anda me-restart hanya satu program itu? supervisorctl restarttidak bekerja. Sebaliknya jika muncul bahwa Anda harus menjalankan "supervisorctl update" atau memulai ulang daemon supervisor itu sendiri. Namun, ini tampaknya memiliki efek yang tidak diinginkan dari memulai ulang semua program, bukan hanya program yang berubah.

Terima kasih.

docs

Komentar yang paling membantu

Apakah definisi berikut berfungsi untuk dokumentasi ?

reread - Baca ulang konfigurasi supervisor. Jangan perbarui atau mulai ulang layanan yang sedang berjalan.
update - Mulai ulang layanan yang konfigurasinya telah berubah. Biasanya dijalankan setelah 'membaca ulang'.
reload - Baca ulang konfigurasi supervisor, muat ulang supervisord dan supervisorctl , mulai ulang layanan yang dimulai.
restart - Mulai ulang layanan

Semua 30 komentar

Mungkin saya melewatkannya tetapi apakah ada penjelasan yang bagus tentang perbedaan antara keempat perintah ini?

Tidak, ini harus ditambahkan ke dokumentasi. Saya telah menambahkan label dokumen dan akan membiarkan masalah ini terbuka, jadi kami melakukannya.

Masih menemukan dokumen saat ini membingungkan.

Terima kasih teman.

Pada Selasa, 13 Des 2016 pukul 07:35, Paweł [email protected]
menulis:

Apa yang membantu saya - http://www.onurguzel.com/supervisord-restarting-and-
memuat ulang/


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/Supervisor/supervisor/issues/720#issuecomment-266770482 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AEgNpM6R9BMwE03q_DejU96qUOef8zCtks5rHrtMgaJpZM4HZsaj
.

@flaugher Saya masih berpikir itu layak untuk menjaga masalah ini tetap terbuka, karena dokumen masih belum memiliki informasi yang relevan.

Saya sebenarnya berencana untuk membuat PR di akhir pekan.

Jika Anda ingin membukanya kembali, silakan. Saya tidak melihat sesuatu yang baru dan telah mengatasi masalah ini dan tidak ingin terus menerima pemberitahuan. Saya tidak tahu cara menonaktifkannya, jadi saya tutup saja.

Pada 13 Desember 2016, pukul 16.03, Paweł [email protected] menulis:

@flaugher Saya masih berpikir bahwa masalah ini tetap perlu dibuka, karena dokumen masih belum memiliki informasinya.

Saya sebenarnya berencana untuk membuat PR di akhir pekan.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.

Sebagai anggota non proyek atau pembuat masalah, saya tidak dapat membukanya, tetapi saya mengerti maksud Anda sepenuhnya.

BTW - Sejauh yang saya tahu Anda dapat berhenti berlangganan notifikasi di menu sebelah kanan dalam tampilan masalah

Terakhir - maaf untuk spam: -)

Halo semuanya.

IMHO , saya setuju dengan pembukaan kembali masalah ini.

Meskipun doc di bawah ini dapat menjelaskan masalah ini, tampaknya agak kabur mengenai definisinya.

Mengenai tindakan "perbarui", saya percaya bahwa ada lebih banyak hal yang harus dijelaskan atau dijelaskan dengan lebih baik, misalnya.

Berikut skenarionya: ketika Anda membuat konfigurasi untuk proses yang akan dikelola oleh "supervisord", Anda menjalankan "supervisorctl update" dan kemudian muncul pesan "your_configured_process: add process group". Apakah ada jenis grup yang dikendalikan oleh "supervisord", yang harus berisi catatan yang menentukan bahwa proses Anda sekarang dikelola oleh "supervidord"?

Dalam pencarian terakhir saya di Google, saya juga menemukan halaman manual ini di situs web Ubuntu, dan sepertinya tidak ada penjelasan untuk tindakan supervisorctl..

Adakah yang bisa (anggota proyek) membuka kembali masalah ini? Sepertinya bukan hanya aku yang percaya bahwa ini harus dilakukan.

Terima kasih
@ivanleoncz

Jadi dimana jawabannya?

+1 untuk pembukaan kembali. reread|reload|restart|update masih belum didokumentasikan.

Hai, Maaf menjadi orang ini, tetapi, bisakah kami membuka kembali masalah itu? Terima kasih.

@pawelad Bagaimana itu membantu Anda? Kalimat kedua benar-benar salah.

Namun itu tidak memiliki opsi isi ulang.

Supervisor pasti memiliki opsi reload ...

Namun orang lain di sini yang akan sangat menghargai beberapa dokumentasi _usable_...

Wow. Saya tidak percaya masalah ini ada. Terima kasih @ivanlmj untuk tautan informatifnya.

Sama-sama, @cornfeedhobo . Terima kasih atas masalah ini :).

Seseorang tolong jelaskan tindakan reload : apa yang saya harapkan dari yang ini pada dasarnya adalah reread + update . Apakah itu perilaku saat ini?

Itu pasti tidak, tetapi Anda akan berpikir begitu! Man beberapa dokumen yang diperbarui akan sangat bagus sekarang ....

@mnaberez bisakah kita memiliki definisi yang jelas dari setiap istilah itu?
Jika Anda dapat merincinya di sini, saya akan dengan senang hati mengajukan permintaan tarik ke dokumen.

Apakah definisi berikut berfungsi untuk dokumentasi ?

reread - Baca ulang konfigurasi supervisor. Jangan perbarui atau mulai ulang layanan yang sedang berjalan.
update - Mulai ulang layanan yang konfigurasinya telah berubah. Biasanya dijalankan setelah 'membaca ulang'.
reload - Baca ulang konfigurasi supervisor, muat ulang supervisord dan supervisorctl , mulai ulang layanan yang dimulai.
restart - Mulai ulang layanan

Cukup bagus!
Sudahkah Anda memastikan bahwa ini adalah aspek nyata dari setiap tindakan, @ocervell ? Jika Anda yakin, alangkah baiknya jika Anda mengirimkan PR untuk dokumentasinya! Cuma bilang :)! Terima kasih!

Saya mencoba supervisorctl reread and update, dan menemukan bahwa 'update' hanya melakukan pekerjaan membaca ulang: memuat ulang konfigurasi aplikasi. jadi apa perlunya tindakan 'membaca ulang'? saya menemukan bingung

$ supervisorctl help update
update          Reload config and add/remove as necessary, and will restart affected programs
update all      Reload config and add/remove as necessary, and will restart affected programs
update <gname> [...]    Update specific groups

Jadi reread tidak diperlukan?

Saya merasa masih sedikit membingungkan. Saat ini saya menjalankan update dan restart all pada pembaruan perangkat lunak kami. Ini bisa jadi:

  • File konfigurasi supervisor diubah
  • Sebuah skrip diubah dan perlu dimulai ulang.

Tetapi ketika konfigurasi supervisor diperbarui, skrip dimulai ulang dua kali (karena update dan restart all ). Saya juga mencoba reread dan restart all , tetapi dalam kasus ini file konfigurasi baru tidak dimulai secara otomatis.

Apakah ada perintah atau kombinasi perintah yang akan memuat ulang semua file konfigurasi dan memulai ulang semua skrip tanpa memulai ulang dua kali dan memuat dan memulai file konfigurasi baru yang ditemukan?

Tidak ada orang di pertanyaan @Wouter0100 ?

@Wouter0100 Mempertimbangkan Anda "memulai ulang semua" apa yang Anda inginkan mungkin paling baik dicapai dengan "realod", meskipun dengan cara yang sedikit berbeda:
Reload akan menghentikan daemon supervisor, memuat ulang konfigurasi dan kemudian me-restart daemon. Dengan asumsi proses Anda memiliki autostart=true (default) semuanya akan dimulai ulang tepat sekali.

Jika Anda membutuhkan sesuatu yang kurang menyeluruh, saya khawatir Anda kurang beruntung: membaca ulang tidak akan memulai proses baru yang ditemukan (seperti yang Anda perhatikan) dan pembaruan akan dimulai ulang hanya jika konfigurasi berubah, dan tidak akan memulai ulang proses (misalnya) yang (pengawas ) config tetap sama, tetapi yang dapat dieksekusi berubah ke versi baru.

Saya memposting solusi lain di #1264.

@AlekSi sebenarnya bukan solusi, karena ini memerlukan penentuan setiap file satu per satu.

Yah, itu tergantung pada kasus penggunaan Anda. Dalam kasus saya, tugas Ansible berfungsi:

    - name: Restart services
      command: supervisorctl {{ item.1 }} {{ item.0 }}
      with_nested:
        - ['x', 'y', 'z']
        - ['stop', 'remove', 'add']

Pertanyaan yang diposting pada edisi duplikat #1264:

Ini adalah kelanjutan dari #720 yang ditutup tetapi mengandung komentar dari banyak orang yang bingung.

Masalahku

Saya perlu memulai ulang layanan X tepat sekali setelah paketnya diperbarui. Ini berisi biner layanan dan bagian dari konfigurasi pengawas yaitu include -ed dari file utama.

Upaya saya

1. `supervisorctl update` does not restart service if configuration file did not change, old binary is still running.

2. `supervisorctl restart` restarts service with the old configuration, the new configuration is not used.

3. `supervisorctl reread && supervisorctl restart` does the same as the one above – and that is very surprising!

4. `supervisorctl update && supervisorctl restart` restarts service twice if configuration file changed.

solusi saya

supervisorctl reread

supervisorctl stop X
supervisorctl remove X
supervisorctl add X  # that also starts X as I have `autostart = true` in configuration

Itu bekerja. Tapi apakah itu benar-benar cara terbaik?
Dan mengapa upaya 3 tidak berhasil?

Itu bekerja. Tapi apakah itu benar-benar cara terbaik?

Ya

Dan mengapa upaya 3 tidak berhasil?

Perintah reread menyebabkan supervisord membaca ulang file konfigurasi dan mengetahui perubahannya, tetapi tidak menerapkan perubahan apa pun pada konfigurasi aktif. Perintah remove dan add digunakan untuk menerapkan perubahan tersebut ke konfigurasi aktif.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat