Thunderbird: nsemail- und nscopy-Dateien verbleiben in /tmp

Thunderbird: nsemail- und nscopy-Dateien verbleiben in /tmp

Ich verwende Thunderbird 68 unter Debian.

Für jede E-Mail, die ich sende, erstellt Thunderbird temporäre Dateien in /tmp:

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

Diese Dateien werden nicht nur nicht gelöscht, nachdem die E-Mail gesendet wurde, sondern, was noch schlimmer ist, sie bleiben dort, nachdem Thunderbird geschlossen wurde.

Ich habe einen Fehlerbericht gefunden aufUbuntuUndBugzilla, aber keine Lösung.

Ich finde es sehr schlecht, dass die temporäre Datei nicht sofort nach dem Senden der E-Mail gelöscht wird. Und es ist absolut empörend, dass nicht einmal beim Beenden der Anwendung die temporären Dateien gelöscht werden.

Kann ich als Workaround den Speicherort ändern, an dem diese temporären Dateien erstellt werden? Beispielsweise ~/.cache/thunderbird/wäre die Verwendung von angemessener.

Antwort1

Dieser Fehler wurde in v68.x eingeführt und ist noch nicht behoben. Nach der Untersuchung ist hier die genaue Situation:

Fehlerdetails:

Thunderbird verwendet diese Funktion ~/tmp/ns*seit früheren Versionen zum Senden von E-Mails, löscht diese temporären Dateien jedoch auch direkt nach der Verwendung, während TB noch geöffnet ist. In v68.xa führt ein Codierungsfehler dazu, dass Thunderbird versucht, diese temporären Dateien am Speicherort zu löschen, /tmp/ns...anstatt eine Variable ~/tmp/ns...festzulegen, um das Problem zu beheben. (Warte auf ein Upstream-Update)$TMPDIR/tmp

Lösung:

Das Ausführen von Thunderbird mit dem folgenden Befehl behebt das Problem (ähnlich wie bei der anderen Antwort).

export TMPDIR=/tmp; thunderbird;

Antwort2

Dieser Fehler wurde in v68.x eingeführt und ist noch nicht behoben. Bis zur Behebung gibt es hier eine Problemumgehung. Beachten Sie, dass tmp/ns*für die ordnungsgemäße Funktion von TB v68 Dateien erforderlich sind.

Problemumgehung I:

Wie in den Kommentaren vorgeschlagen, kann eine benutzerdefinierte temporäre Datei verwendet werden. Sie können dann verschiedene Einschränkungen auf diesen bestimmten temporären Ordner anwenden. Beachten Sie auch, dass die Änderungen der Umgebungsvariablen nicht umfassend angewendet werden müssen.

Bearbeiten Sie die .desktopDatei, die zum Ausführen von Thunderbird verwendet wird (normalerweise unter /usr/share/applications), indem Sie die Exec=Zeile in den folgenden Befehl ändernoderStarten Sie Thunderbird mit dem angegebenen Befehl:

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

$TMPDIRDadurch wird eine Variable auf einen benutzerdefinierten Speicherort festgelegt $TMP. Anschließend wird Thunderbird ausgeführt und beim Schließen rm -rf /home/my/new/tmpdir/ns*werden die verbleibenden temporären Daten gelöscht.

Beachten Sie, dass Änderungen an Umgebungsvariablen Thunderbird nur beeinflussen, wenn sie von einer bashoder einer .desktopDatei aus ausgeführt werden. Andernfalls, wenn dieser Befehl direkt von einem Terminal aus ausgeführt wird, $TMPwirken sich Änderungen an auf Befehle aus, die nach diesem Befehl gestartet werden.

Problemumgehung II:

Wir können ein Skript verwenden, um die Aufgabe manuell auszuführen, während Thunderbird verwendet wird. Dazu würden wir die .desktopDatei wie folgt bearbeiten:

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

Wo cat watch-tb-script.shwäre:

#!/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;

Dieses Skript wird weiter ausgeführt, während Thunderbird geöffnet ist. Es sucht nach /tmp/ns*Dateien und entfernt alle 10 Sekunden alle Dateien. Anschließend schläft das Skript 60 Sekunden lang, bevor die nächste Suche durchgeführt wird.

verwandte Informationen