Python Scriptini Systemd ile Çalıştırma

0 الردود 5 المشاهدات
·
المشاركون
صاحب الموضوع #1
Python Scriptini Systemd ile Çalıştırma

Python tabanlı otomasyon veya sürekli çalışan scriptler geliştirdiğinizde, bunları sistem açılışında otomatik başlatmak ve yönetmek için systemd kullanmak oldukça yaygın ve etkili bir yöntemdir. Bu süreç, scriptlerinizi bağımsız ve stabil bir şekilde çalıştırmayı sağlar, ayrıca hata durumlarında yeniden başlatma veya loglama gibi özellikleri kolayca entegre edebilirsiniz.

İlk adım olarak, Python scriptinizin tam yolunu belirleyin. Örneğin, /home/kullanici/scripts/my_script.py gibi. Scriptinizin çalışması için gereken ortam değişkenleri veya bağımlılıkları varsa, bunları da göz önünde bulundurmalısınız. Sonra, bir systemd servis dosyası oluşturmanız gerekiyor. Bu dosya, scriptinizin nasıl başlatılacağını, durdurulacağını ve yeniden başlatılacağını tanımlar.

Örnek bir systemd servis dosyası şu şekilde olabilir:

كود
1234567891011121314151617
[Unit]
Description=Python Script Otomatik Başlatıcı
After=network.target

[Service]
Type=simple
User=kullanici
ExecStart=/usr/bin/python3 /home/kullanici/scripts/my_script.py
Restart=on-failure
Environment=PYTHONPATH=/home/kullanici/venv/lib/python3.8/site-packages
WorkingDirectory=/home/kullanici/scripts
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target


Burada dikkat edilmesi gereken noktalar:
  • ExecStart satırında Python yorumlayıcısının yolu ve scriptinizin tam yolu belirtilmeli.
  • User ile scripti çalıştıracak kullanıcı seçilmeli.
  • Restart=on-failure ile script hata verirse otomatik yeniden başlatma sağlanabilir.
  • Environment ve WorkingDirectory gibi ayarlarla ortam yapılandırması yapılabilir.


Bu dosyayı /etc/systemd/system/ dizinine kaydettikten sonra, aşağıdaki komutlar ile servisi etkinleştirebilir ve başlatabilirsiniz:

كود
1234
sudo systemctl daemon-reload
sudo systemctl enable myscript.service
sudo systemctl start myscript.service


Bu sayede, sistem her açıldığında scriptiniz otomatik olarak başlatılacak ve systemctl komutlarıyla durdurmak, yeniden başlatmak veya durumunu sorgulamak mümkün olacak. Ayrıca, loglar journalctl komutuyla erişilebilir.

Bu yöntem, Python scriptlerinizi sistem seviyesi yönetimiyle entegre ederek, güvenilirlik ve otomasyon açısından büyük avantaj sağlar. Sisteminizde sürekli çalışan veya belirli zamanlarda tetiklenen scriptleri bu şekilde düzenlemek, sistem yönetimini oldukça kolaylaştırır.

يجب تسجيل الدخول للرد.

0 اقتباسات محددة