Estou usando o systemd para montar automaticamente uma partição NFS em um notebook com Arch.
Problema:
Se o dolphin teve uma pasta do compartilhamento NFS aberta ao fechar e eu mudo a rede, ele se recusa a abrir na próxima vez que eu iniciá-lo.
O mesmo às vezes acontece com o zsh e outros softwares.
O problema só acontece quando estou conectado a qualquer outra rede que não seja minha normalmente usada e não uso minha VPN ou não estou conectado a nenhuma rede. Contanto que o servidor NFS seja acessível pelo meu sistema, tudo funciona tão bem quanto deveria.
solução alternativa atual:
No momento estou contornando esse problema parando a unidade de montagem automática e iniciando o aplicativo novamente.
Aqui estão os arquivos de unidade relevantes:
/etc/systemd/system/pool1.automount
Contente:
[Unit]
Description=Automount NFS pool1
Requires=NetworkManager.service
After=network-online.target
[Automount]
Where=/pool1
TimeoutIdleSec=10min
[Install]
WantedBy=multi-user.target
/etc/systemd/system/pool1.mount
Contente:
[Unit]
Description=Mount NFS pool1
[Mount]
What=192.168.1.5:/pool1
Where=/pool1
Type=nfs
Options=soft,async
Tenho certeza de que existe uma opção para dizer ao systemd para tentar montar o compartilhamento apenas se estiver presente, mas não encontrei nada sobre isso.
Estou procurando uma solução que lide perfeitamente com diferentes redes sem atrasos se o servidor NFS não estiver presente.
Atualizar
Eu adicionei TimeoutSec=5
à [Mount]
seção, a única diferença é que agora o dolphin desiste após 5 segundos e se fecha.
Consegui recriar o problema. Parece haver vários problemas em jogo. O próprio NFS, o systemd e a pilha de rede têm problemas. O material de montagem automática não é realmente projetado para condições transitórias. Talvez possa ser hackeado para funcionar melhor, não sei. De qualquer forma...
Uma abordagem de força bruta é mostrada aqui . Basicamente, não use a montagem automática e, em vez disso, execute ping continuamente no servidor do cron e monte ou desmonte com base em seu status.
Outra abordagem da minha experimentação é possível usar
networkd-dispatcher
para montar e desmontar automaticamente. Os scripts de eventos detectam o servidor ou a rede e agem de acordo.Crie fstab para a montagem (ou qualquer método que você preferir). Defina como "noauto" pelo menos.
Crie o seguinte script em
/etc/networkd-dispatcher/routable.d/10-nfs-pool1
. Mark executável (eu acho).Agora duplique esse arquivo em off.d e no-carrier.d:
Infelizmente, ambas as abordagens acima mantêm a montagem ativa mesmo quando não está sendo usada. O problema com a montagem automática é que quando você começa a gerenciar manualmente a montagem, a montagem automática é desabilitada. O Automount parece que poderia usar mais recursos, mas talvez eu não os conheça.