Bashスクリプトは「孤児」バックグラウンドプロセスを開始します。

Bashスクリプトは「孤児」バックグラウンドプロセスを開始します。

私がやろうとしていること:

バックグラウンドプロセスを作成し、その出力をVSCシェルにリダイレクトしようとしています。 VSCは自分自身を作成し​​たシェル(親シェル)が終了コードを送信するのを待つので、このバックグラウンドプロセスは親シェルとは無関係でなければなりません。

Webpack.shを起動

#!/bin/bash
echo "Starting webpack-dev-server"
cd .. && cd client && yarn debug

注文する

./startWebpack.sh &

私は何をしていますか:

このガイドに従ってください&スクリプトに追加してバックグラウンドプロセスを作成できるはずです。スクリプトを親から独立させないようです。

親シェルはバックグラウンドプロセスの出力を引き継ぐように見え、終了信号を送信しません。親シェルを終了すると、バックグラウンドプロセスも終了します。

出力をに送って/dev/null./startWebpack.sh > /dev/null違いはありません。実際には、まだコマンドの出力を見ることができます。

VSC は内部でコマンドを実行します。bash -c ./startWebpack.sh & 源泉。これがどのような影響を与えるかはわかりません。

答え1

nohupたとえば、使用してください。nohup ./startWebpack.sh &> /dev/null &

これは Bash 構文です。他のシェルでは、次のことができます。 nohup ./startWebpack.sh >/dev/null 2>&1 &

これを手動で実行することもできます。

$ ./startWebpack.sh &
$ disown

関連情報