2016-07-05 2 views
1

공유 디렉토리가 마운트 된 후 PM2가 어떻게 응용 프로그램을 시작하도록 설정할 수 있습니까? 기본적으로 pm2 startup은 OS 부팅 직후에 스크립트를 실행하려고 시도하는 스크립트를 추가하므로 프로그램 오류가 발생합니다 (해당 시간까지 폴더가 아직 마운트되지 않았기 때문에).공유 폴더가 마운트 된 후 방랑자 시작 응용 프로그램의 PM2

+0

처럼 쓸 수있는이 명령을

By default, provisioners are only run once, during the first vagrant up since the last vagrant destroy , unless the --provision flag is set, as noted above.

Optionally, you can configure provisioners to run on every up or reload . They will only be not run if the --no-provision flag is explicitly specified. To do this set the run option to "always"

설정을 실행 어떻게 앱을 시작하나요? 기본적으로 방랑자의 프로비저닝을 사용하는 경우 공유 폴더가 마운트 된 후 실행됩니다. 실행중인 '방랑자 업'의 출력에서 ​​볼 수 있습니다. _ 제공된 프로비저닝 단계 전에 공유 폴더를 마운트합니다 ._ –

+0

pm2 로그에 다음과 같은 오류가 있습니다 :'index-0 (err) : chdir() : No such file or directory'가 부랑 부트에 나타납니다. 그래서 마운트 된 폴더가 아닌 것으로 생각됩니다. 수동'pm2 stop'과'pm2 start' 이후 완벽하게 실행됩니다. – Luke

+0

** 어떻게 앱을 시작합니까? ** 방황 제 공급을 통한 초기화 스크립트가 있습니까? –

답변

3

당신은

config.vm.provision :shell, :inline => "pm2 start /vagrant/project/server/index.js && pm2 startup", :run => 'always', privileged: false 

shell provisioning을 읽은 당신의 Vagrantfile에 다음 줄을 추가 할 수 있습니다 : 당신이 그들을 입력 할 명령 줄을 입력 할 위치를 상자에 ssh를 할 때

  • inline (string) - Specifies a shell command inline to execute on the remote machine.

이것은

  • privileged (boolean) - Specifies whether to execute the shell script as a privileged user or not (sudo). By default this is "true".

경우에 따라 false으로 설정하십시오. always은 그래서 언제든지 부팅을 시작된다 PM2로 호언 장담 사용자는 여러 개의 명령을 실행할 경우 VM은

당신은 또한

config.vm.provision "shell", run: "always", privileged: false, inline: <<-SHELL 
    pm2 start /vagrant/project/server/index.js 
    pm2 startup 
    .... any command that you want to execute .... 
    SHELL 
+1

pm2와의 호환성이 문제가되므로 문제 해결 방법보다는 해결 방법과 비슷하지만 여전히 문제를 수정하여이 대답을 수락 된 것으로 표시합니다. 감사합니다 – Luke

관련 문제