我正在尝试做的事情:
我正在尝试生成一个后台进程并将其输出重定向到 VSC 的 shell。此后台进程应该独立于父 shell,因为 VSC 将等待生成它的 shell(父 shell)发送退出代码。
启动Webpack.sh
#!/bin/bash
echo "Starting webpack-dev-server"
cd .. && cd client && yarn debug
命令
./startWebpack.sh &
我在做什么 :
遵循本指南我应该能够通过在&
脚本后面附加 a 来生成后台进程。它似乎并没有使脚本独立于父级。
父 shell 似乎接管了后台进程的输出,并且从不发送退出信号。杀死父 shell 也会杀死后台进程。
将输出发送到/dev/null
with./startWebpack.sh > /dev/null
没有任何区别。我实际上仍然可以看到该命令的输出。
VSC 在内部运行命令bash -c ./startWebpack.sh &
来源。不确定这是否会影响任何事情。
答案1
使用nohup
例如
nohup ./startWebpack.sh &> /dev/null &
这是 Bash 语法,对于其他 shell,您可以
nohup ./startWebpack.sh >/dev/null 2>&1 &
您也可以手动执行此操作,例如
$ ./startWebpack.sh &
$ disown