私がやろうとしていること:
バックグラウンドプロセスを作成し、その出力を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