Comment arrêter un processus en arrière-plan dans un script shell en cours d'exécution
P粉722409996
2023-09-03 18:16:08
<p>J'essaie d'exécuter mysqld en arrière-plan pour exécuter certaines commandes à l'aide du client mysql, mais lorsque je passe le processus au premier plan, mon script cesse de s'exécuter. Voici le script que j'utilise : </p>
<pre class="brush:sh;toolbar:false;">set -m
daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@"
$démon &
exec echo "Test"
exécutable fg %1
≪/pré>
<p>Je ne suis pas un expert en programmation de scripts shell, j'ai consulté certains sites Web et trouvé cette méthode d'exécution de commandes. </p>
Non. Le script dans
exec echo "Test"
后停止。exec
remplace le processus actuel (c'est-à-dire le script shell) par la commande suivante. Vous pouvez vérifier par :La solution est simple : n’utilisez pas
exec
.BTW : On ne sait pas pourquoi vous voudriez utiliser
fg
。在交互式shell中,fg
dans un script shell, cela ne fonctionne tout simplement pas dans un script.