suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So stoppen Sie einen Hintergrundprozess in einem laufenden Shell-Skript

<p>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: </p> <pre class="brush:sh;toolbar:false;">set -m daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo „Test“ exec fg %1 </pre> <p>Ich bin kein Experte für Shell-Skript-Programmierung. Ich habe auf einigen Websites nach dieser Methode zum Ausführen von Befehlen gesucht. </p>
P粉722409996P粉722409996491 Tage vor726

Antworte allen(1)Ich werde antworten

  • P粉521748211

    P粉5217482112023-09-04 17:45:03

    不。脚本在 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 只在脚本中没有功能。

    Antwort
    0
  • StornierenAntwort