Ubuntuだと最近はupstartっていうイベント駆動型の仕組みを使ってデーモンなりサービスなりを起動するらしい。
で、vagrant上の仮想ubuntuマシンでupstartのスクリプトを書いていたのだけど、実行用のスクリプトを
/vagrant
においていて、それを
xxx.conf
start on runlevel[2345] stop on runlevel[!2345] respawn script exec /vagrant/my_launch.sh end script
みたいにしているとどうもup時やreload時にサービスが起動しない。
確かめてみると、これはrunlevel[2345]になるタイミングと/vagrantが仮想マシン上にマウントされるタイミングが異なるためで、execしようにもそのときにはまだ/vagrantが仮想マシン上から見えないためらしい。
解決策としては、上2行を
start on vagrant-mounted stop on runlevel [!2345]