시작시 Vagrant가 서버를 시작하도록하려면 어떻게해야합니까?


29

Vagrant는 내가 vagrant 할 때마다 / vagrant / 폴더에서 Play 서버를 시작하기를 원합니다. / vagrant / 폴더가 연결되기 전에 스크립트가 실행되므로 crontab에 @reboot를 넣을 수 없습니다.

답변:


16

crontab을 사용하는 대신 Upstart를 사용해 보셨습니까 ?

Vagrant는 공유 폴더가 마운트 될 때 "vagrant-mounted"이벤트를 생성하므로 upstart conf 파일 (예 :)을 작성하여 /etc/init/play.conf해당 이벤트가 생성 될 때 실행할 수 있습니다.

description "Play server"
start on vagrant-mounted

pre-start script
    [ "$MOUNTPOINT" == "/vagrant" ] || stop
end script

... rest of config file for starting Play server ...

감사! 왜 오류가 발생했는지 잘 모르겠 /bin/sh: 1: [: =: unexpected operator으므로 해당 줄의 주석을 해제했습니다.
wrongusername

죄송합니다! 구문이 정확하도록 게시물을 편집했습니다.
billyw

start on vagrant-mounted MOUNTPOINT=/vagrant잘 작동?
km6zla

내 시작 스크립트의 start on vagrant-mounted경우 어떤 이유로 작동하지 않습니다. 이유를 모르고 디버깅하는 방법을 모릅니다.
maectpo

44

옵션과 함께 별도의 vagrant provisioner를 사용하는 run : "always"것이 훨씬 쉽다 는 것을 알았습니다 .

config.vm.provision :shell, path: "yourStartUp.sh", run: "always", privileged: false

전체 문서는 https://docs.vagrantup.com/v2/provisioning/shell.html 을 참조 하십시오 .


3
제공된 링크에 대해 아무 말도하지 않습니다 "always". 아마도 이것은 새로운 버전에서 제거되었을 것입니다.
Rafael Eyng

6
@RafaelEyng에 대한 문서는 vagrantup.com/docs/provisioning/basic_usage.html 에서 "Run ONCE OR ALWAYS"를 검색하십시오
Daniel Compton

2017 년에 다시 테스트되었습니다. 매력처럼 작동합니다. 이것이 가장 좋은 대답이며 여전히 최신입니다.
iaforek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.