내가 하려는 일:
백그라운드 프로세스를 생성하고 그 출력을 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