So stoppen Sie einen Hintergrundprozess in einem laufenden Shell-Skript
P粉722409996
P粉722409996 2023-09-03 18:16:08
0
1
577

Ich versuche, mysqld im Hintergrund auszuführen, um einige Befehle mit dem MySQL-Client auszuführen, aber wenn ich den Prozess in den Vordergrund schalte, stoppt die Ausführung meines Skripts. Dies ist das Skript, das ich verwende:

set -m daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo „Test“ exec fg %1 

Ich bin kein Experte für Shell-Skript-Programmierung. Ich habe auf einigen Websites nach dieser Methode zum Ausführen von Befehlen gesucht.

P粉722409996
P粉722409996

Antworte allen (1)
P粉521748211

不。脚本在exec echo "Test"后停止。exec用后面的命令替换当前进程(即shell脚本)。您可以通过以下方式进行验证:

daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo "Test" echo "Second Test" exec fg %1

解决方案很简单:不要使用exec

顺便说一下:不清楚为什么您想在shell脚本中使用fg。在交互式shell中,fg只在脚本中没有功能。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!