System Administration

Python Kullanarak Toplu İş Dosyalarından Süreçleri Etkin Bir Şekilde Sonlandırma

Spread the love

Bu makale, Python’ın gücü ve esnekliği ile geliştirilmiş toplu iş dosyaları kullanarak çalışan işlemleri sonlandırmayı ele alıyor. os modülünü ve daha sağlam psutil kütüphanesini kullanan iki Python yöntemini inceleyeceğiz ve bunları kullanıcı dostu toplu iş dosyalarına entegre edeceğiz.

İçindekiler

Python’ın os Modülünü Kullanma

Python’ın os modülü, işlem sonlandırma dahil olmak üzere temel işletim sistemi etkileşimleri sunar. Bununla birlikte, psutil‘den daha az güvenilirdir, tam İşlem Kimliği’ne (PID) ihtiyaç duyar ve aynı ada sahip birden çok işlem için hata işleme özelliğinden yoksundur. Bu yöntem daha basittir ancak potansiyel olarak daha az sağlamdır.


import os
import sys

def kill_process(pid):
    try:
        os.kill(int(pid), 9)  # SIGKILL sinyali
        print(f"PID'si {pid} olan işlem sonlandırıldı.")
    except OSError as e:
        print(f"{pid} numaralı işlemi sonlandırırken hata: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Kullanım: python kill_process.py ")
        sys.exit(1)
    kill_process(sys.argv[1])

Bu komut dosyası PID’yi komut satırı bağımsız değişkeni olarak kabul eder ve zorla sonlandırma için 9 (SIGKILL) sinyali ile os.kill() kullanır. SIGKILL kullanımı veri kaybına neden olabilir; dikkatli kullanın.

Python’ın psutil Kütüphanesini Kullanma

psutil kütüphanesi, işlem yönetimi için daha gelişmiş ve platformlar arası bir yaklaşım sağlar. Ada göre tanımlamaya olanak tanır ve birden çok örneği etkili bir şekilde ele alır.


import psutil
import sys

def kill_process_by_name(process_name):
    for proc in psutil.process_iter(['pid', 'name']):
        try:
            if proc.info['name'].lower() == process_name.lower(): #büyük/küçük harf duyarlılığı olmadan eşleştirme
                proc.kill()
                print(f"'{process_name}' işlemi (PID: {proc.info['pid']}) sonlandırıldı.")
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:
            print(f"'{process_name}' işlemini sonlandırırken hata: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Kullanım: python kill_process_by_name.py ")
        sys.exit(1)
    kill_process_by_name(sys.argv[1])

Bu komut dosyası işlem adını girdi olarak alır ve çalışan işlemler arasında yineleyerek ada uyanları sonlandırır. Hata işleme dahildir. psutil‘ü şu şekilde yükleyin: pip install psutil

Toplu İş Dosyası Oluşturma

psutil komut dosyasını çalıştıran bir toplu iş dosyası oluşturalım (yukarıdaki komut dosyasını kill_process_by_name.py olarak kaydedin). Bir toplu iş dosyası oluşturun (örneğin, kill_process.bat):


@echo off
python kill_process_by_name.py "notepad"
pause

“notepad” yerine hedef işlem adını yazın. Python’ın sisteminizin PATH ortam değişkeninde olduğundan emin olun.

En İyi Uygulamalar ve Dikkat Edilmesi Gerekenler

Sağlamlığı nedeniyle her zaman psutil yöntemini tercih edin. İşlemleri zorla sonlandırırken dikkatli olun, çünkü veri kaybı olasıdır. Kritik sistem işlemlerini sonlandırmaktan kaçının. Daha iyi izleme ve hata takibi için Python komut dosyanıza günlük kaydı eklemeyi düşünün.

Sorun Giderme

  • “Erişim Reddedildi”: Toplu iş dosyasını çalıştırmak için yönetici ayrıcalıkları gerekir.
  • Python komut dosyası çalışmıyor: Python’ın PATH’inizde olduğunu, Python yorumlayıcısının doğru şekilde belirtildiğini ve komut dosyası yolunun doğru olduğunu doğrulayın.
  • İşlem bulunamadı: İşlem adını iki kez kontrol edin (bazı durumlarda büyük/küçük harfe duyarlıdır). Tam adı doğrulamak için Görev Yöneticisi’ni kullanın.

Bu gelişmiş kılavuz, toplu iş dosyasından işlemleri yönetmek için daha sağlam ve güvenli bir yaklaşım sağlar. İşlemleri sonlandırırken dikkatli davranmayı unutmayın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir