Ubuntu 15.04を実行しているVagrantボックスがあります。これには、システムの起動時にサービスを開始するupstartスクリプトがあります。 start on vagrant-mounted
スタンザ。サービスでは/ vagrantディレクトリをVagrantでマウントする必要があるためです。
現在、このスクリプトをsystemd(まったく新しい)に移行していますが、スクリプトの実行時に/ vagrantがマウントされていないため、起動時にスクリプトを正常に実行できません。 After=vagrant-mounted
は機能しませんが、私がやろうとしていることを示すのに役立つかもしれません。
起動中にVagrantディレクトリがマウントされているときにsystemdユニットを実行するにはどうすればよいですか?
注意 systemctl start my.service
doesはサービスを正常に開始し、サービスはsystemctl enabled
'ed。
Vagrantのブートシーケンスについての私の理解は、ブートシーケンスが完了した後、VagrantがSSHを使用して/vagrant
(および定義した他の共有ファイルシステム)をマウントすることです。
そのため、プロビジョナーでsystemctl start my.service
を実行し、 run: always
を指定すると、プロビジョナーはVMが最初に作成されます。
Systemdにファイルシステムがマウントされたことを検出する機能があれば、これは必要ありませんが、驚いたことに、systemdがそのような機能をサポートしていることを示すものは見つかりません。