Implementação do serviço systemd com dependência de HDD externo

1

Eu só quero compartilhar algumas reflexões sobre minha primeira configuração do systemd. Até agora eu usei comandos como iniciar e parar desta vez eu quero mais.

Eu tenho um arco de execução de framboesa-pi. Eu tenho um HDD USB externo para armazenar dados. Eu quero rodar o samba para compartilhar pastas nessa unidade externa.

Problema: Se o HDD não estiver conectado, o samba não deve iniciar. Se o HDD for anexado mais tarde, o samba deve começar então. Se o HDD for desconectado durante a operação, o samba deve parar (possível perda de dados, acho que não há nada que eu possa fazer).

Depois de ler exemplos e manuais do sistema, percebi que:

/ etc / fstab

UUID="6509-D18E"  /storage  vfat  defaults,nofail,x-systemd.device-timeout=20  0  2

/etc/systemd/system/smbd.service:

[Unit]
Description=Samba SMB/CIFS server
After=network.target nmbd.service winbindd.service
BindsTo=storage.mount
RequiresMountsFor=/storage

[Service]
Type=forking
PIDFile=/var/run/smbd.pid
ExecStart=/usr/bin/smbd -D
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target storage.mount

Os elementos-chave são nofail no fstab, se estiver faltando todo o meu sistema trancado durante a inicialização. Eu acho que ele informa ao systemd para continuar se o disco rígido não estiver conectado.

O WantedBy é usado para iniciar o samba se o disco rígido estiver conectado e BindsTo for responsável por interromper o samba se o ponto de montagem desaparecer.

Estou faltando alguma coisa ou existe uma solução ainda mais elegante?

felicidades

    
por OSC 09.05.2016 / 23:00

0 respostas