Eu movi a maioria dos meus maiores arquivos para um disco removível, alguns desses arquivos também são torrents que eu gostaria de propagar. Eu uso deluged como meu cliente de torrent que é iniciado pelo systemd no meu usuário. Agora, a unidade pode ser conectada no momento da inicialização ou montada em uma data posterior, o que, é claro, faz com que a inundação seja confusa e queixam-se de que os arquivos são incompatíveis. A solução mais ingênua é apenas iniciar o serviço inutilizado após o dispositivo ser montado e é isso que planejo fazer.
Eu já vi estas respostas que sugerem usando RequiresMountsFor
e de acordo com systemctl --user show deluged
parece fazer o que eu quero:
After=basic.target -.slice home.mount network-online.target media-braiam-AA64B45
RequiresMountsFor=/media/braiam/AA64B45A64B42AC9 /home/braiam
Agora, isso permite que a unidade seja iniciada se eu tiver montado o dispositivo, mas não interrompe a unidade quando o dispositivo está sendo desmontado, nem parece iniciar o serviço quando o dispositivo está sendo montado.
Em resumo:
- O serviço é iniciado apenas se o dispositivo estiver montado ou puder ser montado
- O serviço será interrompido se o dispositivo estiver sendo desmontado
- O serviço será iniciado se o dispositivo estiver montado
- O dispositivo permanecerá montado se o serviço for interrompido.
Isso é o que eu consegui:
[Unit]
Description=Deluge Bittorrent Client Daemon
After=network-online.target
RequiresMountsFor=/media/braiam/id/
BindsTo=media-braiam-id.mount
Por enquanto, isso interrompe o serviço quando está sendo desmontado, é iniciado somente se o ponto de montagem puder ser montado e tentar montar o dispositivo. Não montará o dispositivo, pois somente o root pode montá-lo (acho que se eu instalar uma unidade para o sistema, isso será possível). Ele não inicia se o ponto de montagem se tornar disponível, no entanto. Como faço para conseguir o que quero?