Process Kill0r

Encore du PHP pour un script de fainéant qui kill les processus indésirables sous windows (pratique avant de lancer une application qui nécessite beaucoup de ressources). A customiser selon vos envies. A titre culturel, shell_exec exécute une commande et retourne le résultat dans une chaîne. On se sert ici de la commande tasklist qui dresse une liste des processus lancés. Si une des lignes contient le nom d'un exécutable concerné, le signal d'arrêt lui est envoyé avec taskkill /IM. L'option /F force la fin si celle-ci prend son temps.

Kill Process
<?php

/* Process Kill0r 1.0 by dew */

$str=shell_exec("tasklist");
$str=explode("\n",$str);

$process=array(
    'Apache.exe', // Apache
    'mysqld-nt.exe', // MySQL
    'Winamp.exe', // Winamp
    'atiptaxx.exe', // Control Panel ATI
    'ati2evxx.exe', // Encore de l'ATI
    'tablet.exe', // Tablette graphique
    'TabUserW.exe', // Tablette graphique
    'wmiprvse.exe', // Windows Management Thing
    'cthelper.exe', // Creative Thing
    'uphclean.exe', // Fast session close
    'spoolsv.exe', // Spool Impression
    'supercopier.exe', // SuperCopier
    'ctfmon.exe', // Microsoft Language Thing
);

foreach($str as $ligne) {
    foreach($process as $p) {
        if(preg_match('/'.$p.'/i',$ligne)) {
            exec("taskkill /IM $p /F");
        }
    }
}

?>

A lancer avec la commande php.exe -q script.php (si le chemin est spécifié dans PATH, etc...).

Fini le geek stuff, demain on reprend avec de la philo, promis.

5 commentaires pour “Process Kill0r”

  1. [ NikO ] dit :

    Merci de nous faire partager ce script, il est vraiment sympa :)

  2. markos dit :

    Plutôt pratique ! Merci !

  3. Eagle1792 dit :

    Ca fait tres longtemps qu’on a plus de billets sur le PHP :'(
    A quand le prochain? :)

  4. Nico dit :

    Juste une tite remarque tasklist ne fonctionne pas sous un win server 2000, il faut utiliser tlist.exe

    Sinon petit script bien sympa :)

  5. Ramel dit :

    pas terro… c’est hardcodé : les noms des taches a killer en dur, c’est null…
    alors qu’il suffirait de toutes les énumérer et d’essayer (silent_v) de les killer; ce qui passe si elle sont en released.

Laisser un commentaire