Eu estava tendo exatamente o mesmo problema e resolvi fazendo duas alterações. Primeiro após esta postagem , criei uma função para invocar automaticamente recentf-save-list
em um timer. Assim, a cada poucos minutos, reescrevemos automaticamente o arquivo ~ / .recentf.
A outra coisa que fiz foi adicionar um script de desligamento ao meu gerenciador de exibição (lightdm) que normalmente fechava o servidor emacs toda vez que eu fazia logout ou desligava. A maneira como você faz isso dependerá do seu gerenciador de exibição, mas meu script simplesmente se parece com
#!/bin/bash
emacsclient -e "(save-buffers-kill-emacs)"
Também seria bom ter um hook que automaticamente executasse recentf-save-list
toda vez que um cliente "desconectasse" do servidor, mas eu não conseguia descobrir os ganchos apropriados.