Primeiramente, parece que, para mount.s3ql e umount.s3ql , uma unidade .mount genérica pode ser apropriada. Tanto o comando mount quanto o systemd suportam mount.fstype auxiliares durante a montagem. No entanto, o auxiliar deve suportar o método padrão -o options de opções de passagem, o que s3ql não oferece. Além disso, aplicam-se as mesmas limitações como em / etc / fstab .
Assim, você pode realmente ser melhor com uma unidade .service que chama os comandos desejados:
[Unit] [email protected] [email protected] [Service] Type=forking Environment=AUTHFILE=/path/to/authinfo2 ExecStart=/usr/sbin/mount.s3ql --authfile ${AUTHFILE} ${BUCKET} ${MOUNTPOINT} ExecStop=/usr/sbin/umount.s3ql ${MOUNTPOINT} TimeoutSec=5min
Como não existe uma maneira padrão de configurar redes, muito menos uma que realmente verifica se a conexão está realmente funcionando, não existe um alvo systemd padrão para o que você deseja. Há network.target , mas pode considerar-se iniciado quando a conexão ainda não está disponível.
Se você estiver usando o NetworkManager, sua distribuição pode ter incluído uma unidade que executa nm-online - por exemplo, o Arch chama NetworkManager-wait-online.service .
[Unit] Require=NetworkManager-wait-online.service After=NetworkManager-wait-online.service