node.js 서버를 다시 시작하는 방법
osx에서 node.js 서버를 설치하고 실행 중입니다. 채팅 모듈을 제공했고 즐겁게 실행 중입니다. 일부 부분을 변경했으며 효과를 보려면 서버를 다시 시작해야합니다.
터미널 창을 닫은 다음 다시 시작하고 chatdemo.js 노드를 다시 실행하여 다시 시작하는 방법 만 알고 있습니다.
터미널을 닫지 않고 다시 시작하는 방법은 무엇입니까?
감사.
데몬이 아닌 실행 중이면 Ctrl-C
.
데몬 화되면 다음을 시도 할 수 있습니다.
$ ps aux | grep node
you PID 1.5 0.2 44172 8260 pts/2 S 15:25 0:00 node app.js
$ kill -2 PID
여기서 PID
의 출력에서 숫자에 의해 대체된다 ps
.
개발 중에 변경 사항을 확인하기 위해 서버를 다시 시작하는 가장 좋은 방법은 nodemon 을 사용하는 것입니다.
npm 설치 nodemon -g
nodemon [앱 이름]
nodemon은 nodemon이 시작된 디렉토리의 파일을 감시하고 변경되면 자동으로 노드 응용 프로그램을 다시 시작합니다.
nodemon git repo 확인 : https://github.com/remy/nodemon
이 경우 node.js 서버는 활성 개발 중이고 항상 변경하기 때문에 자주 다시 시작합니다. 모든 .js 파일을보고 해당 파일이 변경된 경우 node.js 서버를 다시 시작하여이를 처리 할 수 있는 훌륭한 핫 리로드 스크립트가 있습니다. 신속한 개발 및 테스트를위한 티켓입니다.
사용 방법에 대한 스크립트와 설명은 여기 Draco Blue에 있습니다.
나는 같은 문제가 있었고 모든 기존 노드 프로세스를 죽이는이 쉘 스크립트를 작성했습니다.
#!/bin/bash
echo "The following node processes were found:"
ps aux | grep " node " | grep -v grep
nodepids=$(ps aux | grep " node " | grep -v grep | cut -c10-15)
echo "OK, so we will stop these process/es now..."
for nodepid in ${nodepids[@]}
do
echo "Stopping PID :"$nodepid
kill -9 $nodepid
done
echo "Done"
쉘 스크립트 (xxx.sh) 파일로 저장 한 후 여기에 설명 된대로 PATH에 추가 할 수 있습니다 .
(이것은 grep 자신을 제외하고 이름에 "node"가있는 모든 프로세스를 죽일 것입니다. 그래서 어떤 경우에는 비슷한 이름을 가진 다른 프로세스도 죽일 수 있다고 생각합니다)
"nodemon"이라고 말하면 질문에 답할 수 있습니다.
그러나 (모든) 노드 악마를 죽이는 방법에 관해서는 다음이 저에게 효과적입니다.
pkill -HUP node
내 의견이 창과 관련이 있다는 것을 이해하지만 누군가 유용 할 수 있습니다. cmd에서 실행되는 win의 경우 :
wmic process where "commandline like '%my_app.js%' AND name='node.exe' " CALL Terminate
그런 다음 앱을 다시 실행할 수 있습니다.
node my_app.js
또한 이스케이프 따옴표와 함께 배치 파일에서 사용할 수 있습니다.
wmic process where "commandline like '%%my_app.js%%' AND name='node.exe' " CALL Terminate
node my_app.js
"kill -9 [PID]"또는 "killall -9 node"를 사용하면 "kill -2 [PID]"가 작동하지 않는 곳에서 작동했습니다.
콘솔에서 노드 앱을 실행하는 경우 (영원히 사용하지 않는 등) control + C를 사용합니다. OSX가 종료 할 키 조합이 동일한 지 확실하지 않지만 프로세스 ID를 찾아 죽이는 것보다 훨씬 빠르면 다음을 추가 할 수도 있습니다. 사용중인 채팅 앱에 코드를 입력 한 다음 앱을 종료 할 때마다 콘솔에 'exit'를 입력합니다.
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function(data) {
if (data == 'exit\n') process.exit();
});
참고 URL : https://stackoverflow.com/questions/3302959/how-to-restart-a-node-js-server
'Program Tip' 카테고리의 다른 글
문자열 또는 정수로 열거 형 값을 얻는 방법 (0) | 2020.10.31 |
---|---|
토큰 기반 인증을위한 JWT 대 쿠키 (0) | 2020.10.31 |
JSON을 렌더링하기위한 Express 및 ejs <% = (0) | 2020.10.31 |
편집 텍스트를 편집 할 수 없지만 JAVA에서 클릭 할 수있게 만드는 방법 (0) | 2020.10.31 |
Laravel 해시 된 암호를 만드는 방법 (0) | 2020.10.31 |