systemd: como requerer e efetuar a montagem de um sistema de arquivos específico?

4

Eu gostaria de criar um arquivo de serviço que, quando iniciado, faz com que um sistema de arquivos especificado seja montado antes que a ação do arquivo de serviço seja executada (já que ele precisa que o sistema de arquivos esteja disponível). Além disso, gostaria que esse arquivo de serviço falhasse graciosamente caso o sistema de arquivos não possa ser montado (por exemplo, porque ele está localizado em um disco rígido externo, algumas vezes, desconectado).

Minha primeira tentativa foi simples e parcialmente bem-sucedida: adicione x-systemd.automount como uma opção na linha fstab do sistema de arquivos. Em seguida, o sistema de arquivos é montado automaticamente quando o arquivo de serviço faz com que seu ponto de montagem seja acessado. No entanto, ele não falha normalmente no sentido de que há um tempo limite longo e é registrado como um ERRO.

Minha segunda tentativa não foi tão bem-sucedida, adicionei BindsTo=path-to-mountpoint.mount e After=path-to-mountpoint.mount ao arquivo de serviço ( x-systemd.automount foi removido): o path-to-mountpoint.mount não foi encontrado. Eu acho que só é criado após a montagem bem sucedida, por isso não é para o que eu quero fazer.

    
por equaeghe 26.04.2016 / 22:33

1 resposta

2

De acordo com o manual:

Mounts listed in /etc/fstab will be converted into native units dynamically at boot and when the configuration of the system manager is reloaded.

Isso significa que você pode adicionar o seguinte à seção [Unit] do seu arquivo .service :

Requires=opt.mount
After=opt.mount

(este é um exemplo para o meu caso em que eu monto /opt separadamente no meu arquivo fstab ).

    
por 08.01.2017 / 10:54