[npm] npm 백그라운드에서(계속) 실행 + 종료

npm run dev 를 실행해서 개발중일때 터미널을 종료해도 계속 실행 + 종료 하는 방법이다.

// 세션 끊겨도 계속 실행
nohup npm run dev &

// 세션 연결 중에만 계속 실행
npm run dev &

// 종료
ps auxf | grep node // node를 실행중인 프로세스 검색
kill -9 프로세스ID // 위에서 찾은 ID를 이용해 프로세스 종료

아래는 매번 콘솔을 입력하기 귀찮을 경우에 스크립트를 이용해서 실행+종료 하는 방법이다.

* 해당 sh 파일들 하위에서 npm을 실행한다고 가정한 스크립트다. 상황에 맞게 수정하자.

// run_dev.sh
HERE=$( cd "$(dirname "$0")" ; pwd )
cd $HERE
cd "svelte"

nohup npm run dev > "$HERE/node.log" 2>&1 &
sleep 1
pid=$(ps --ppid $! | tail -1 | awk '{ print $1 }')
if echo $pid | egrep -q '^[0-9]+$'; then
    echo $pid > "$HERE/save_pid.txt"
else
    echo 'server not started!'
fi

// kill_dev.sh
HERE=$( cd "$(dirname "$0")" ; pwd )
cd $HERE
cd "svelte"

kill -9 `cat $HERE/save_pid.txt`
rm "$HERE/save_pid.txt"

Leave a Comment