バックグラウンドプロセスでシェルスクリプトの実行を停止する方法
P粉722409996
2023-09-03 18:16:08
<p>mysql クライアントを使用していくつかのコマンドを実行するために、mysqld をバックグラウンドで実行しようとしていますが、プロセスをフォアグラウンドに切り替えると、スクリプトの実行が停止します。これは私が使用するスクリプトです: </p>
<pre class="brush:sh;toolbar:false;">set -m
daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@"
$デーモンと
exec echo "テスト"
実行ファイル %1
</pre>
<p>私はシェル スクリプト プログラミングの専門家ではありません。いくつかの Web サイトを調べたところ、コマンドを実行するこの方法を見つけました。 </p>
###いいえ。スクリプトは
exec echo "Test"
解決策は簡単です。の後に停止します。
exec現在のプロセス (シェル スクリプトなど) を次のコマンドに置き換えます。次の方法で確認できます:
リーリーexec
ところで: シェル スクリプトでを使用しないことです。
fg
を使用する理由は明確ではありません。対話型シェルでは、
fgはスクリプト内でのみ機能しません。