.xsession-errorsがディスク領域を消費しないようにするにはどうすればよいですか?


12

.xsession-errorsファイルを完全に無効にする方法はありますか?/ tmpへのシンボリックリンクとして使用しているため、ラップトップのハードディスクは(できれば)1回だけスリープ状態になりますが、ファイル内の少なくとも95%(1時間あたり約500kでいっぱいになります)は...

(nautilus:1618):GLib-GObject-CRITICAL **:g_value_get_object:アサーション `G_VALUE_HOLDS_OBJECT(value) 'が失敗しました

これは私にとって完全なゴミです。/ dev / nullへのシンボリックリンクを実行しようとしましたが、動作しません(結果のリンクは上書きされます)。また、私のラップトップが一度スリープ状態にできるように、アクティビティも必要ありません。

私はUbuntu 11.04を使用していますが、Nautilusに特別なアドオンはありません。


起動時/etc/X11/Xsessionにシンボリックリンクが指しているものをチェックしないため、このトリックは私には機能しません。私にとっては、新しい.xsession-errors通常ファイルを作成し、に.xsession-errors.oldリンクしてい/dev/nullます。それは私が望むものではありません。私が欲しい.xsession-errorsにリダイレクト/dev/null私は明示的にそれを自分で変更しない限りpermantently - 。
bjem

@ j-johan-edwardsを明確にするためだけに。私はあなたのコマンドをテストし、それはうまく動作します、私はそれが永続的であることを望みます。
-bjem

11.04はディスプレイマネージャーとしてGDMまたはLightDMを使用しますか?
確実に

それがデフォルトであれば、私はGDMだと思います。Unityデスクトップから離れる以外は変更していません。
bjem

はい、私のものはGDMです。どうやらへのパス.xsession-errorsは、そのソースコードにハードコーディングされています(?!)。GDMの読み込み後にリダイレクト.xsession-errorsするスクリプトを実行する良い方法はあり/dev/nullますか?
-bjem

回答:


10

暫定的な解決策を見つけました。

私は今のところ仕事をするという小さなスクリプトを/etc/X11/Xsession.d呼び出し91redirect-xsession-errorsましたが、独自のカスタムシンボリックリンクが必要な場合、.xession-errorsそれは機能しません(私は試しましたが、データを出力しませんでした)。

#!/ bin / sh

#$ HOME / .xsession-errorsを/ dev / nullにリダイレクトします。
#BJEM 2012年1月11日

XSESSION_ERRFILE = $ HOME / .xsession-errors

#これは通常のファイルでは機能しないようです。
#すなわち、$ HOME / .xsession-errorsをシンボリックリンクする場合
#別のファイルに。何故かはわからない。
XSESSION_ERRFILE_FINAL = / dev / null

#ターゲットファイルが存在しない場合は作成します。
「$ XSESSION_ERRFILE_FINAL」をタッチします

#.xsession-errorsファイルを目的のターゲットにリンクします
#何があっても。
ln -sf "$ XSESSION_ERRFILE_FINAL" "$ XSESSION_ERRFILE"

# テストケース。
#gedit&

#####ファイルの終わり#####

それは少し「ラフで準備ができています」が、それは私のために仕事をします。これが変更された唯一のファイルであることに注意してください。


残念ながら、@ earlonrailsの回答に気付きませんでした。/ etc / X11 / Xsessionは、シンボリックリンクの場合は/ tmpにファイルを作成するため、この方法は役に立ちません。
int_ua

4

/ etc / X11 / Xsessionというファイルがあります。これにより、tmpファイルへのシンボリックリンクが作成されます。IE。行番号61から開始

ERRFILE=$HOME/.xsession-errors

# attempt to create an error file; abort if we cannot
if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] &&
  [ ! -L "$ERRFILE" ]; then
  chmod 600 "$ERRFILE"
elif ERRFILE=$(tempfile 2> /dev/null); then
  if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
    message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
             "\"$ERRFILE\"; look for session log/errors in" \
             "\"$TMPDIR/xsession-$USER\"."
  fi
else
  errormsg "unable to create X session log/error file; aborting."
fi

このXsessionファイルをXsession.bakにcpできます。次に、先頭に移動して、ERRFILEに/ dev / null IEを指定します。83行目

exec >> /dev/null 2>&1

ありがとうございました!もっと早くこの答えに気づいたといいのですが。200の評判を授与します。環境変数$NOXSESSIONERRORS paste.ubuntu.com/p/TFxZ344k2pをこのようにチェックするパッチを作成しました。この方法でアップストリームにすることができます。
int_ua

1
どうもありがとう!これは、キオスクを作っている会社で働いていた数年前の私にとって大きな問題でした。通常はカメラに使用されるコンパクトフラッシュカードから実行します。これらのカードは、カードへの書き込みに失敗する前に、一定数の書き込みのみを行います。そのため、他の人が示唆するように、ファイルを何度も削除すると、問題が悪化するだけです。
earlonrails

ここに私の答えと同様の重複した質問があります。kubuntu.com
questions / 177058 /

上流に見つけられる最も近いものにマージリクエストを行いました:salsa.debian.org/xorg-team/xorg/merge_requests/7キオスクについてのストーリーをそこに追加してください。
int_ua

0

Redhat Linux 6.4サーバーでも同じ問題に直面しましたが、このコマンド「find / -xdev -type f -size + 100000000c -exec ls -lh {} \;」を使用して、どのフォルダーまたはユーザーがより多くのスペースを使用しているかを見つけることができます 次に、rm -rfコマンドを使用して手動でxセッションエラーを削除しました


1
この回答は、エラーを停止する方法を示していません。それらを削除する方法を示しているだけです。回答を更新してください。
カズウルフ14

0

.xsession-errorsファイルを削除しても、プロセスがまだファイルに書き込みを行っている場合は、システムが再起動するまでスペースが解放されないことに注意してください。echoを使用してファイルの内容を上書きし、ファイルを1文字に設定します。プロセスが.xsession-errorsへの書き込みを停止するまで、ファイルはすぐに再び成長し始めます。私はRemminaを停止してからファイルを切り捨てて、実行に戻ります。また、ファイルの制限サイズを数ギガに設定して、.xsession-errorsファイルがドライブをファイルできず、システムがクラッシュしないようにする場合にも役立ちます。明らかにすべてのLinuxオペレーティングシステムに組み込まれているウイルスのこの問題に対する答えを探しています。マイクロソフトの開発者がLinuxに貢献しているように聞こえます... ;-)


>.xsession-errors:>.xsession-errors ファイルをゼロにする他の良い方法です。
earlonrails
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.