시작시 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.