exec vscodeは出力を/ dev / nullにリダイレクトしません。

exec vscodeは出力を/ dev / nullにリダイレクトしません。

次のbashスクリプトがあります。

exec '/mnt/c/Users/WindowsUserName/AppData/Local/Programs/Microsoft VS Code/Code.exe' $@ &>/dev/null &

スクリプトを実行すると、次の結果が表示されます。

➜  ~ ./code foo.js
➜  ~
[main 2021-11-18T17:54:12.206Z] update#setState idle
[main 2021-11-18T17:54:42.215Z] update#setState checking for updates
[main 2021-11-18T17:54:42.435Z] update#setState idle

^出力はにリダイレクトされません/dev/null。誰にもアイデアはありますか?

ありがとう

ベストアンサー1

一般的にstdin、、、stdoutおよびstderrは端末を指します。参照が削除されます&>/dev/null(除くstdin)。ただし、これらの参照はプロセスが端末に書き込む唯一の方法ではありません。

ctty=$(awk '{ print $7}' /proc/self/stat)
echo "controlling tty: $(( (ctty>>8) & 255 )):$(( (ctty>>20) + (ctty&255) ))"

プロセスは制御端末を開いて直接書くことができます。これはで防ぐことができますnohup

おすすめ記事