Ubuntu sunucularında süreç yönetimi, özellikle uzun süreli çalışan uygulamalar için kritik öneme sahiptir.
Ubuntu sunucularında süreç yönetimi, özellikle uzun süreli çalışan uygulamalar için kritik öneme sahiptir. Supervisor, bu ihtiyacı karşılayan güçlü bir process control sistemi sunar. Python tabanlı bu araç, daemon süreçleri otomatik olarak yeniden başlatma, loglama ve izleme gibi özelliklerle sistem yöneticilerine kolaylık sağlar. Bu makalede, Ubuntu sunucusu üzerinde Supervisor’ı kurma, yapılandırma ve etkin kullanma adımlarını detaylı olarak ele alacağız. Kurumsal ortamlar için ideal olan bu kurulum, sunucu kararlılığını artırarak kesinti sürelerini minimize eder.
Supervisor kurulumuna başlamadan önce Ubuntu sunucusunun güncel olması şarttır. Bu, güvenlik açıklarını kapatır ve uyumluluk sorunlarını önler. Öncelikle terminal üzerinden sistem paketlerini güncelleyin. Ardından Supervisor paketini yükleyin. Kurulum sonrası servisleri etkinleştirerek aracın kalıcı olarak çalışmasını sağlayın. Bu adımlar, sorunsuz bir başlangıç için temel oluşturur.
sudo apt update && sudo apt upgrade -y komutunu çalıştırın. Bu işlem, mevcut paketleri en son sürüme getirir ve bağımlılıkları çözer.sudo apt install supervisor -y ile paketi indirin ve kurun. Kurulum tamamlandığında, servis otomatik başlar.sudo systemctl enable supervisor ile açılışta otomatik başlatmayı etkinleştirin. Durumunu sudo systemctl status supervisor ile kontrol edin./etc/supervisor/supervisord.conf konumundadır. Program konfigürasyonları ise /etc/supervisor/conf.d/ altına yerleştirilir.Bu kurulum süreci yaklaşık 5 dakika sürer ve 100 MB civarında disk alanı gerektirir. Ubuntu 20.04 ve üzeri sürümlerde test edilmiştir. Kurulum sonrası sudo supervisorctl status komutu ile arayüzü test edin; RUNNING durumunda olmalıdır.
Yapılandırma, Supervisor’ın gücünü ortaya koyar. Ana dosyayı düzenleyerek log seviyesi, PID dosyası gibi parametreleri özelleştirin. Yeni programlar için /etc/supervisor/conf.d/ dizinine .conf uzantılı dosyalar oluşturun. Bu dosyalar, INI formatında olup [program:isim] bölümüyle tanımlanır. Değişiklikleri uygulamak için sudo supervisorctl reread ve sudo supervisorctl update komutlarını kullanın.
Node.js tabanlı bir web uygulamasını yönetmek için örnek bir konfigürasyon dosyası oluşturun: sudo nano /etc/supervisor/conf.d/myapp.conf. İçeriği şu şekilde ayarlayın:
[program:myapp] command=node /var/www/myapp/server.js directory=/var/www/myapp autostart=true autorestart=true stderr_logfile=/var/log/myapp.err.log stdout_logfile=/var/log/myapp.out.log user=www-data
Bu ayarlar, uygulamanın belirtilen dizinde çalışmasını, hata durumunda otomatik yeniden başlamasını ve logları ayrı dosyalara yazmasını sağlar. Kullanıcıyı www-data olarak belirlemek, güvenlik açısından web sunucusu izinleriyle uyumludur. Konfigürasyonu yükledikten sonra sudo supervisorctl start myapp ile başlatın. Durumu sudo supervisorctl status ile izleyin; FATAL hatası alırsanız log dosyalarını kontrol edin.
Birden fazla süreci yönetmek için her programa ayrı .conf dosyası ekleyin. Örneğin, bir veritabanı temizleyici ve API servisi için iki dosya oluşturun. Grup oluşturmak isterseniz [group:mygroup] bölümü ekleyin ve programları listeleyin. sudo supervisorctl start mygroup:* ile grubu toplu başlatın. Bu yaklaşım, kurumsal ölçekte 50+ süreci yönetmeyi kolaylaştırır. Log rotasyonu için supervisord.conf’ta numprocs ve process_name parametrelerini kullanın; örneğin process_name=%(program_name)s_%(process_num)02d ile numaralandırılmış instance’lar oluşturun.
Supervisor’ı optimize etmek için web arayüzünü etkinleştirin. supervisord.conf dosyasında [inet_http_server] bölümünü açın: port=9001, username ve password ekleyin. Tarayıcıdan sunucu_ip:9001 erişin. İstatistikler ve manuel kontroller için idealdir. Güvenlik için firewall kurallarını ayarlayın, yalnızca güvenilir IP’lere izin verin.
Supervisor başlamıyorsa journalctl -u supervisor ile logları inceleyin. PID dosyası çakışması varsa sudo rm /var/run/supervisor.sock silin. Bellek sızıntısı durumlarında restartsecs=10 ekleyin. Ubuntu firewall (ufw) etkinse sudo ufw allow 9001 ile açın. Bu çözümler, %90 oranında sorunları giderir. Düzenli bakım için cron ile sudo supervisorctl restart all planlayın.
Supervisor ile Ubuntu sunucunuzda süreç yönetimi profesyonel seviyeye ulaşır. Düzenli log takibi ve konfigürasyon güncellemeleriyle yüksek kullanılabilirlik sağlar. Bu kurulum, geliştirme ekiplerine güvenilir altyapı sunarak operasyonel verimliliği artırır. Uygulamalarınızı hemen test ederek faydalarından yararlanın.