시스템 부팅 시 서비스를 시작하는 시작 스크립트가 있는 Ubuntu 15.04를 실행하는 Vagrant 상자가 있습니다. start on vagrant-mounted
서비스에서는 Vagrant가 /vagrant 디렉토리를 마운트해야 하기 때문에 스탠자가 있습니다 .
이제 이 스크립트를 systemd(완전히 처음 접함)로 마이그레이션하고 있는데 스크립트가 실행될 때 /vagrant가 마운트되지 않았기 때문에 부팅 중에 스크립트를 성공적으로 실행할 수 없습니다. After=vagrant-mounted
작동하지 않지만 내가하려는 작업을 보여주는 데 도움이 될 수 있습니다.
부팅 중에 Vagrant 디렉토리가 마운트된 경우 systemd 장치를 어떻게 실행합니까?
메모systemctl start my.service
하다서비스가 성공적으로 시작되고 서비스가 systemctl enabled
'ed'됩니다.
답변1
Vagrant 부팅 시퀀스에 대한 제가 이해한 바는 Vagrant가 /vagrant
부팅 시퀀스가 완료된 후 SSH를 사용하여 마운트(및 정의한 다른 공유 파일 시스템)한다는 것입니다.
systemctl start my.service
따라서 다음과 같은 프로비저너에서 실행하고 싶을 것입니다 .run: always
지정되므로 VM이 처음 생성될 때뿐만 아니라 부팅할 때마다 프로비저너가 실행됩니다.
systemd에 파일 시스템이 마운트된 시기를 감지하는 기능이 있었다면 이는 필요하지 않았지만 놀랍게도 systemd가 그러한 기능을 지원한다는 표시를 찾을 수 없습니다.