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

관련 정보