web-dev-qa-db-ja.com

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

.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に特別なアドオンはありません。

12
bjem

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

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

#!/ bin/sh 
 
#$ HOME/.xsession-errorsを/ dev/nullにリダイレクトします。
#2012年1月11日BJEM 
 
 XSESSION_ERRFILE = $ HOME/.xsession-errors 
 
#これは、通常のファイルでは機能しないようです。
#つまり、シンボリックリンクしたい場合$ HOME/.xsession-errors 
#別のファイルに。理由はわかりません。
 XSESSION_ERRFILE_FINAL =/dev/null 
 
#ターゲットファイルが存在しない場合は作成します。
 touch "$ XSESSION_ERRFILE_FINAL" 
 
#.xsession-errorsファイルを目的のターゲットにリンクします
#何であれ。
 ln -sf "$ XSESSION_ERRFILE_FINAL" "$ XSESSION_ERRFILE" 
 
#テストケース。
#gedit&
 
 ##### END OF FILE ##### 

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

10
bjem

/ 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
4
earlonrails

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

0
dneill

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

0
user320929