Je vais expliquer pourquoi c'est une mauvaise idée après la réponse, mais voici quelques astuces que vous pourriez utiliser. Comme tout le monde ne peut pas tester avec CC, prenons Safari comme exemple :
ps -ef | grep "Safari "
Tout d'abord, j'ajoute un espace après le nom du programme pour m'assurer qu'il ne fait pas partie du chemin. Ensuite, utilisez des crochets autour d'un caractère du nom du processus, cela empêche grep de se trouver lui-même. (il y a probablement une manière plus élégante de faire cela, mais cette astuce fonctionne bien pour moi)
ps -ef | grep "[S]afari "
Cela fait en sorte que la commande grep ne corresponde pas à Safari - les crochets vous permettraient de rechercher [SZ]afari
et de correspondre à Safari
ou Zafari
par exemple. Nous voulons juste perturber grep
et ne pas trouver d'autres caractères pour la position 1.
ps -ef | grep "[S]afari " | awk '{print $2}'
Supprimez le deuxième mot séparé par un espace pour obtenir le PID. Voici à quoi cela ressemblerait lors d'une session pour déboguer les commandes que nous utilisons :
mac:~ me$ ps -ef | grep Safari
501 300 1 0 Mer18:00 ?? 45:03.88 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
501 520 1 0 Mer18:00 ?? 1:08.95 /usr/libexec/SafariCloudHistoryPushAgent
501 590 1 0 Mer18:00 ?? 1:39.35 /System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/com.apple.Safari.SafeBrowsing.Service
...
Remarquez que j'ai utilisé echo
pour simplement afficher la syntaxe de la commande - si je ne l'avais pas échoé, alors la commande kill aurait réellement fonctionné et tué le programme Safari que j'utilise pour écrire cette réponse.
¯\_()_/¯
Donc, vous devriez maintenant être à l'aise pour écrire un script en une ligne pour tuer le seul processus (espérons-le) et nous arrivons à la partie de la mauvaise idée de la réponse. Il serait préférable d'utiliser killall server.js
si vous n'envisagez jamais d'exécuter d'autres serveurs que vous ne voulez pas tuer.
- Que se passe-t-il si quelqu'un crée un autre programme ou un script avec le même nom, maintenant vous le tuez aussi ou tuez qui sait sur quoi la commande
awk
décide de cibler ?
- En outre, nous n'avons même pas parlé de la planification du script. Le lancez-vous toutes les 5 minutes, une fois par heure, et pire encore, quel est le dommage qu'il inflige à tout travail qu'il est censé faire sur le CPU en ce moment même.