web-dev-qa-db-ja.com

Thunderbird:/ tmpに残されたnsemailおよびnscopyファイル

DebianではThunderbird 68を使用しています。

私が送信する電子メールの場合、Thunderbirdは/ tmpに一時ファイルを作成します。

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

これらのファイルは、メールの送信後に削除されないだけでなく、Thunderbirdが閉じられた後もそのまま残ります。

buntBugzilla の両方でバグレポートを見つけましたが、解決策はありません。

電子メールが送信された直後に一時ファイルが削除されないのは非常に悪い習慣だと思います。そして、とんでもないことに、アプリケーションの終了でさえ、一時ファイルをクリーンアップしません。

回避策として、これらの一時ファイルが作成される場所を変更できますか?たとえば、~/.cache/Thunderbird/の方が適切です。

6
400 the Cat

このバグはv68.xで導入され、まだ修正されていません。これが修正されるのを待つのが回避策です。TB v68が正しく機能するには、tmp/ns*ファイルが必要です。 。

回避策I:

コメントで提案されているように、カスタム一時ファイルを使用できます。その後、その特定の一時フォルダーにさまざまな制限を適用できます。また、環境変数の変更を広く適用する必要がないことに注意してください。

.desktop行を次のコマンドに変更して、Thunderbirdの実行に使用される/usr/share/applicationsファイルを編集します(通常はExec=の下)or指定されたコマンドでThunderbirdを起動します。

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

これにより、$TMPDIR変数と$TMP変数がカスタムの場所に設定され、Thunderbirdが実行され、最後にrm -rf /home/my/new/tmpdir/ns*を閉じると、残っているtmpが削除されます。

その環境に注意してください。これがbashまたは.desktopファイルから実行された場合、変数の変更はThunderbirdにのみ影響します。それ以外の場合、このコマンドを端末から直接実行すると、$TMPに変更すると、このコマンドの後に起動されるコマンドに影響します。

回避策II:

スクリプトを使用して、Thunderbirdの使用中に手動でジョブを実行できます。そのためには、.desktopファイルを次のように編集します。

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

cat watch-tb-script.shは次のようになります:

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

このスクリプトは、Thunderbirdが開いている間も実行を続けます。/tmp/ns*ファイルを確認し、10秒ごとに各ファイルを削除してください。その後、スクリプトは次のチェックの前に60秒スリープします。

1
intika

このバグはv68.xで導入され、まだ修正されていません。調査後、正確な状況は次のとおりです。

バグの詳細:

Thunderbirdは以前のバージョンからメールを送信するときに~/tmp/ns*を使用しますが、tbがまだ開いている間は、これらの一時ファイルを使用直後に削除します。 v68.xでは、コーディングの誤りにより、Thunderbirdが/tmp/ns...ではなく~/tmp/ns...にある一時ファイルを削除しようとするため、$TMPDIR変数を/tmpに設定して問題を修正します。 (上流の更新を待っています)

ソリューション:

次のコマンドを使用してThunderbirdを実行すると、問題が修正されます(他の回答と同様)。

export TMPDIR=/tmp; Thunderbird;
2
intika