web-dev-qa-db-ja.com

systemdで同等のvagrant-mounted(upstart)で開始

Ubuntu 15.04を実行しているVagrantボックスがあります。これには、システムの起動時にサービスを開始するupstartスクリプトがあります。 start on vagrant-mountedスタンザ。サービスでは/ vagrantディレクトリをVagrantでマウントする必要があるためです。

現在、このスクリプトをsystemd(まったく新しい)に移行していますが、スクリプトの実行時に/ vagrantがマウントされていないため、起動時にスクリプトを正常に実行できません。 After=vagrant-mountedは機能しませんが、私がやろうとしていることを示すのに役立つかもしれません。

起動中にVagrantディレクトリがマウントされているときにsystemdユニットを実行するにはどうすればよいですか?

注意 systemctl start my.servicedoesはサービスを正常に開始し、サービスはsystemctl enabled 'ed。

7
T.J. Mazeika

Vagrantのブートシーケンスについての私の理解は、ブートシーケンスが完了した後、VagrantがSSHを使用して/vagrant(および定義した他の共有ファイルシステム)をマウントすることです。

そのため、プロビジョナーでsystemctl start my.serviceを実行し、 run: always を指定すると、プロビジョナーはVMが最初に作成されます。

Systemdにファイルシステムがマウントされたことを検出する機能があれば、これは必要ありませんが、驚いたことに、systemdがそのような機能をサポートしていることを示すものは見つかりません。

3
womble