Dalam pengembangan aplikasi dan pengelolaan server, sering kali kita membutuhkan suatu layanan yang terus berjalan di latar belakang, misalnya service web, background job, atau task scheduler. Namun, salah satu kesalahan umum yang kerap terjadi adalah tidak menggunakan Supervisor untuk mengelola service secara otomatis.
Banyak developer ataupun admin server menjalankan aplikasi sebagai service secara manual, misalnya dengan perintah:
$ node app.js
Atau menggunakan nohup dan & di terminal:
$ nohup node app.js &
Memang cara tersebut membuat aplikasi berjalan di background, namun banyak masalah yang bisa timbul, seperti:
Tidak menggunakan supervisor dapat menyebabkan downtime yang tidak terdeteksi, memperbesar risiko terhadap stabilitas layanan aplikasi maupun website.
Supervisor adalah tool yang dapat mengelola proses-proses yang berjalan di server. Supervisor bekerja dengan memonitor, menjalankan, dan merestart service sesuai konfigurasi. Penggunaan supervisor sangat direkomendasikan untuk proses mission-critical pada server.
Instalasi supervisor cukup mudah. Pada server Linux (Debian/Ubuntu), lakukan:
$ sudo apt update
$ sudo apt install supervisor
Setelah terinstall, supervisor akan berjalan sebagai service daemon di server Anda.
Untuk mengelola service, Anda cukup membuat konfigurasi di folder /etc/supervisor/conf.d/. Contoh, misalnya ingin mengelola aplikasi Node.js:
[program:myapp]
command=node /path/to/app.js
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
user=myuser
Penjelasan konfigurasi di atas:
Simpan file konfigurasi, lalu reload supervisor:
$ sudo supervisorctl reread
$ sudo supervisorctl update
Sekarang service Anda akan otomatis terkelola dan berjalan secara otomatis di server.
sudo supervisorctl status: Melihat status semua service.sudo supervisorctl start myapp: Menjalankan service tertentu.sudo supervisorctl stop myapp: Menghentikan service.sudo supervisorctl restart myapp: Restart service.Semua perintah di atas memudahkan pengelolaan aplikasi di production. Tidak perlu repot mengingat proses atau membuka terminal untuk menjalankan ulang.
Mengaktifkan supervisor adalah solusi terbaik untuk mengelola service di server. Kesalahan umum dengan menjalankan aplikasi secara manual tanpa supervisor sangat berbahaya dan dapat menyebabkan downtime tanpa terdeteksi. Dengan supervisor, Anda dapat:
Oleh karena itu, pastikan setiap aplikasi mission-critical di server Anda selalu dikelola menggunakan supervisor. Jika masih menjalankan service secara manual, segera beralih menggunakan supervisor demi kelangsungan dan stabilitas layanan aplikasi Anda.