pm2가 npm 시작 스크립트를 실행하는 방법이 있습니까 아니면 그냥 실행해야합니까? pm2 start app.js
그래서 개발에서
npm start
그런 다음 pm2를 사용한 프로덕션에서는 다음과 같은 것을 실행합니다.
pm2 start 'npm start'
이 작업을 수행하는 동등한 방법이 있습니다 forever
.
forever start -c "npm start" ./
pm2가 npm 시작 스크립트를 실행하는 방법이 있습니까 아니면 그냥 실행해야합니까? pm2 start app.js
그래서 개발에서
npm start
그런 다음 pm2를 사용한 프로덕션에서는 다음과 같은 것을 실행합니다.
pm2 start 'npm start'
이 작업을 수행하는 동등한 방법이 있습니다 forever
.
forever start -c "npm start" ./
답변:
PM2는 이제 npm start를 지원합니다.
pm2 start npm -- start
PM2 프로세스에 이름을 지정하려면 다음 --name
옵션을 사용하십시오 .
pm2 start npm --name "app name" -- start
--name "app"
했지만 그냥 npm으로 설정했다.
npm start
프로세스 파일에서 설정하는 방법을 아는 사람이 있습니까?
.json
pm2 프로세스를 실행하기 위해 파일 과 같은 구성 스크립트를 사용하는 사람들은 이와 같은 npm start
다른 스크립트를 사용할 수 있습니다 -
my-app-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
그런 다음 간단히
pm2 start my-app-pm2.json
편집 -상위 디렉토리에이 구성 스크립트가 있고 서브 디렉토리에서 앱을 시작하려는 경우 유스 케이스를 처리하려면 cwd
속성 을 사용하십시오 .
앱 nested-app
이이 구성 파일과 관련된 하위 디렉토리에 있다고 가정하면 -
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
자세한 내용은 여기를 참조하십시오 .
start
스크립트 정보가있는 package.json이 그 중 하나에 있습니다. 이 요점을 참조하십시오 : gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 이것을 실행할 때 어디에서 npm
실행 해야하는지 알 수 없습니다 . Thx
cwd
속성을 사용할 수 있습니다 . 내 편집 된 답변 확인 :)
sudo pm2 start config.json
예. 사용하십시오 pm2 start npm --no-automation --name {app name} -- run {script name}
. 효과가있다. --no-automation
플래그가 이 충돌 할 때 PM2 앱을 다시 시작하지 않습니다 그것을하지 않고 있기 때문이다.
pm2 --help | grep 'no-autom'
는 버전 1.0.2에서 한 줄을 반환합니다.
아래에 셸 스크립트를 작성했습니다 ( start.sh
). 내 옵션 package.json
이 있기 때문에 prestart
. 그래서 나는 달리고 싶다 npm start
.
#!/bin/bash
cd /path/to/project
npm start
그런 다음 start.sh
pm2 부터 시작하십시오 .
pm2 start start.sh --name appNameYouLike
startOrRestart
명령을 사용할 때 작동하지 않습니다 .
그렇습니다. 이제 pm2는 npm start, --name to species 앱 이름을 지원합니다.
pm2 start npm --name "app" -- start
클러스터링 활성화를 참조하십시오.
pm2 start npm --name "AppName" -i 0 -- run start
어떻게 생각해?
-i 0
합니까?
PM2의 앱에서 특정 npm 스크립트를 실행해야했습니다 (각 env마다) 내 경우에는 준비 / 테스트 서비스를 만들 때였습니다
나를 위해 일한 명령 (args는 그런 식으로 전달되어야 함) :
pm2 start npm --name "my-app-name" -- run "npm:script"
예 :
pm2 start npm --name "myApp" -- run "start:test"
pm2 start npm --name "myApp" -- run "start:staging"
pm2 start npm --name "myApp" -- run "start:production"
그것이 도움이 되었기를 바랍니다
시작하기 전에 공간을 잊지 마세요
pm2 start npm --[space]start
올바른 명령은 다음과 같습니다.
pm2 start npm -- start
불행히도 pm2는 https://github.com/Unitech/PM2/issues/1317 요청한 정확한 기능을 지원하지 않는 것 같습니다 .
제안 된 대안은 프로덕션 및 개발 환경에 대한 설정을 포함 할 수 있는 배포 시작하기ecosystem.json
파일 을 사용하는 것입니다. 그러나 여전히 앱을 부트 스트랩 하는 데 사용 하고 있습니다.npm start
However, this is still using npm start to bootstrap your app.
실제로 다음을 npm start
사용하여 실행할 수 있습니까 pm2
?
이제 다음을 사용할 수 있습니다.
pm2 start npm -- start
다음에 https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319