Thunderbird: arquivos nsemail e nscopy deixados em/tmp

Thunderbird: arquivos nsemail e nscopy deixados em/tmp

Estou usando o Thunderbird 68 no Debian.

Para qualquer email que eu enviar, o Thunderbird cria arquivos temporários em/tmp:

/tmp/nsmail.tmp
/tmp/nsmail-1.tmp
/tmp/nsmail-2.tmp
/tmp/nscopy.tmp
/tmp/nscopy-1.tmp

Esses arquivos não apenas não são excluídos após o envio do e-mail, mas pior ainda, eles permanecem lá após o Thunderbird ser fechado.

Eu encontrei um relatório de bug emUbuntueBugzila, mas nenhuma solução.

Acho uma prática muito ruim que o arquivo temporário não seja excluído imediatamente após o envio do email. E é absolutamente ultrajante que mesmo a saída do aplicativo não limpe seus arquivos temporários.

Como solução alternativa, posso alterar o local onde esses arquivos temporários são criados? Por exemplo, usar ~/.cache/thunderbird/seria mais apropriado.

Responder1

Este bug foi introduzido na v68.x e ainda não foi corrigido. Após investigação, aqui está a situação exata:

Detalhe do bug:

O Thunderbird usa ~/tmp/ns*desde a versão anterior ao enviar e-mail, mas também exclui esses arquivos temporários logo após usá-los, enquanto ainda está aberto. No erro de codificação v68.xa, o Thunderbird tenta excluir esses arquivos temporários no local, /tmp/ns...em vez de ~/tmp/ns...definir a $TMPDIRvariável para /tmpcorrigir o problema. (aguardando uma atualização upstream)

Solução:

Usar o seguinte comando para executar o Thunderbird corrigirá o problema (semelhante à outra resposta)

export TMPDIR=/tmp; thunderbird;

Responder2

Este bug foi introduzido na v68.xe ainda não foi corrigido, aguardar que isso seja corrigido aqui é uma solução alternativa, observe que tmp/ns*os arquivos são necessários para que o TB v68 funcione corretamente.

Solução alternativa I:

Conforme sugerido nos comentários, um arquivo temporário personalizado pode ser usado; você pode então aplicar diferentes restrições a essa pasta temporária específica. Observe também que as alterações nas variáveis ​​​​de ambiente não precisam ser aplicadas amplamente.

Edite o .desktoparquivo usado para executar o Thunderbird (geralmente em /usr/share/applications) alterando a Exec=linha para o seguinte comandoouinicie o Thunderbird com o comando fornecido:

export TMPDIR=/home/my/new/tmpdir; export TMP=$TMPDIR; thunderbird; rm -rf /home/my/new/tmpdir/ns*

Isso irá definir $TMPDIRe $TMPvariar para um local personalizado, então o Thunderbird será executado e, finalmente, quando for fechado, rm -rf /home/my/new/tmpdir/ns*excluirá o restante do tmp.

Observe que env. alterações de variáveis ​​afetarão apenas o Thunderbird se ele for executado a partir de um arquivo bashou .desktop. Caso contrário, se este comando for executado diretamente de um terminal, as alterações $TMPafetarão os comandos iniciados após este comando.

Solução alternativa II:

Podemos usar um script para fazer o trabalho manualmente enquanto o Thunderbird é usado; Para fazer isso, editaríamos o .desktoparquivo com o seguinte:

Exec=env TMPDIR=/tmp /usr/bin/thunderbird & /path/to/watch-tb-script.sh

Onde cat watch-tb-script.shestaria:

#!/bin/sh

[[ $(ps all -e | grep thunderbird | grep -v color | grep -v grep) ]]
while [[ "$?" == 0 ]] 
do
  for i in /tmp/ns*; do 
    if [ -f "$i" ]; then 
      rm -rf $i;
      sleep 10s; 
    fi;
  done;
  sleep 60s;
  [[ $(ps all -e | grep thunderbird | grep -v color | grep -v grep) ]]
done;

Este script continuará em execução enquanto o Thunderbird for aberto, verificará os /tmp/ns*arquivos e removerá cada arquivo a cada 10 segundos, então o script irá dormir 60 segundos antes da próxima verificação.

informação relacionada