Maison  >  Article  >  interface Web  >  nodejs ferme les autres applications

nodejs ferme les autres applications

PHPz
PHPzoriginal
2023-05-11 20:08:36746parcourir

Cet article expliquera comment fermer d'autres applications à l'aide de Node.js. Dans des applications pratiques, ces fonctions peuvent être utilisées pour protéger la sécurité du système, gérer l'état de fonctionnement du système ou pour diverses autres raisons. Dans Node.js, vous pouvez exécuter des programmes externes en utilisant la méthode exec du module child_process. Bien entendu, lors de l’exécution de telles opérations, une attention particulière doit être accordée à la prise en compte et à l’évaluation de la sécurité du système afin d’éviter des problèmes inutiles.

Étape 1 : Présentez le module child_process
Dans Node.js, vous pouvez exécuter des commandes système en introduisant le module child_process. Vous pouvez ajouter le code suivant au début du code :

const { exec } = require('child_process');

Étape 2 : Rechercher l'ID de processus qui doit être fermé
Avant d'exécuter l'opération de fermeture d'autres programmes, vous devez obtenir les ID de processus de ces programmes. Vous pouvez lister tous les processus en cours d'exécution sur le système actuel en exécutant la commande "ps -A". Dans les systèmes Linux, chaque processus possède un ID de processus (PID) unique. Nous pouvons effectuer l'opération d'arrêt en trouvant le PID correspondant au nom du programme. Vous pouvez utiliser le code suivant pour trouver le PID d'un processus :

exec('pidof <AppName>', (err, stdout, stderr) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(stdout);
});

Dans le code ci-dessus, "96c7a35f730d136b52d64994d1e4a36d" indique le nom du programme que vous devez rechercher. Lorsque cette commande est exécutée, la sortie sera l'ID de processus du programme. Lorsque le programme n'existe pas, la sortie sera une chaîne vide.

Étape 3 : Fermer d'autres programmes
Après avoir obtenu le PID du programme qui doit être fermé, nous pouvons exécuter la commande "kill PID" pour le fermer. Dans le système Linux, vous pouvez utiliser le code suivant pour arrêter le processus avec le PID spécifié :

exec('kill <PID>', (err, stdout, stderr) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(stdout);
});

Dans le code ci-dessus, "bed08b0deaa559fa022c3f83f9c03e86" représente l'ID de processus du programme qui doit être arrêté. Lorsque cette commande est exécutée, la sortie sera une chaîne vide. Une fois l'exécution terminée, si vous devez réexécuter les étapes précédentes pour continuer à fermer d'autres processus, vous pouvez utiliser la récursivité ou la boucle pour y parvenir.

Étape 4 : Exemple de code complet

const { exec } = require('child_process');

const closeApp = (appName) => {
  exec(`pidof ${appName}`, (err, stdout, stderr) => {
    if (err) {
      console.error(err);
      return;
    }
    // 当前程序的PID
    const curPID = process.pid;
    // 查找到的所有程序PID数组
    const pidList = stdout
      .split('
')
      .filter((pid) => pid && pid !== String(curPID));
    if (pidList.length > 0) {
      pidList.forEach((pid) => {
        exec(`kill ${pid}`, (err, stdout, stderr) => {
          if (err) {
            console.error(err);
            return;
          }
          console.log(`${pid} is killed`);
        });
      });
    } else {
      console.log(`No ${appName} process is found`);
    }
  });
};

// 以Chrome浏览器为例进行测试
closeApp('chrome');

Dans le code ci-dessus, nous utilisons la fonction closeApp pour effectuer l'opération de fermeture d'autres programmes. Lors de la recherche du PID du programme qui doit être fermé, nous déterminons également spécifiquement le PID du programme en cours pour éviter de fermer accidentellement le processus en cours. Après avoir trouvé le PID du programme qui doit être fermé, nous utilisons forEach pour parcourir la liste PID, puis effectuons l'opération d'arrêt une par une.

Ce qui précède explique comment utiliser Node.js pour fermer d'autres applications. Bien sûr, dans les applications réelles, plus de détails et de problèmes de sécurité doivent être pris en compte. Nous espérons que les lecteurs pourront subir une évaluation et des tests de sécurité suffisants avant que le code ne soit exécuté pour garantir l'exactitude et la fiabilité du programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn