쉘 스크립트에서 다음 명령을 실행하고 백그라운드에서 실행하려고 합니다.
npx tailwindcss -i ./static/src/input.css -o ./static/src/output.css --watch &
내 셸에서는 작동하지만 일단 스크립트에 넣으면 실행되지 않습니다. 후행을 제거하면 &
스크립트 내에서 실행되지만 백그라운드에서 실행하려면 필요합니다. 쉘 스크립트에서 호출할 때 이 특정 명령이 백그라운드에서 실행되지 않는 이유를 아시나요?
답변1
스크립트를 실행하기 위해 시작된 셸에서 스크립트가 실행됩니다. 쉘은 시작된 마지막 프로세스가 종료될 때까지 종료되지 않습니다.
해결 방법: 스크립트를 실행하지 말고 현재 셸에서 가져옵니다. 그러나 이는 프로그램이 백그라운드에서 실행되는 동안 셸을 유지해야 함을 의미합니다.
실제 질문은 npm 패키지에서 명령을 실행하고 백그라운드에서 실행하려고 하기 때문에 이것이 데몬에서 실행하기에 부적절하다는 것입니다. 귀하의 경우 node.js는 JavaScript의 데몬 실행을 정확하게 수행하도록 작성되었습니다.