Bash 脚本启动“孤立”后台进程

Bash 脚本启动“孤立”后台进程

我正在尝试做的事情:

我正在尝试生成一个后台进程并将其输出重定向到 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/nullwith./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

相关内容