J'ai un script bash sur mon bureau appelé script.sh
.
Actuellement, si je veux l'exécuter, j'ouvre un terminal et saisis ./script.sh
, et si je veux l'arrêter, je dois appuyer sur Ctrl + C
Ce que je voudrais faire est de lier le script à une clé, disons 7 par exemple, si le script est désactivé et que j'appuie sur 7, il est allumé et s’il est déjà allumé, et j’appuie sur 7, il est éteint.
Je sais déjà comment le relier à l'aide de raccourcis clavier pour l'activer, mais le problème est que le fait d'appuyer à nouveau sur le raccourci ne crée qu'une autre instance du script, ce qui n'est pas ce que je veux.
En supposant que votre script soit exécutable, vous pouvez facilement basculer le script avec le petit script ci-dessous:
#!/bin/bash
scriptpath='/full/path/to/script'
if ! pgrep -f "$scriptpath"
then
Nohup "$scriptpath" &
else
pkill -f "$scriptpath"
fi
toggle_scrip.sh
scriptpath='/full/path/to/script'
, entrez le chemin d'accès complet à votre script (entre guillemets simples).Si vous devez contrôler plusieurs scripts, définissez le ou les chemins d'accès comme un argument pour l'extrait de code ci-dessus.
Je ne pense pas qu’il soit possible d’agir de la sorte de la sorte.
Cependant, une option (un peu un bidouillage, mais bon, cela fonctionne) serait de modifier le script, afin qu'il puisse détecter une autre instance de son exécution. Ainsi, lorsque vous démarrez le second script via la liaison de clé, vous pouvez émettre un pkill ou quelque chose de similaire, afin de terminer la seconde et la première instance du script.