ฉันจะป้องกัน. xsession- ข้อผิดพลาดจากการกินพื้นที่ดิสก์ได้อย่างไร


12

มีวิธีใดที่จะปิดการใช้งานไฟล์. xsession-errors อย่างสมบูรณ์หรือไม่? ฉันมีมันเป็น symlink ไปที่ / tmp เพื่อให้ฮาร์ดดิสก์แล็ปท็อปของฉันสามารถ (หวังว่า) จะเข้าสู่โหมดสลีปหนึ่งครั้ง แต่อย่างน้อย 95% ของเนื้อหาในไฟล์ (มันเติมที่ประมาณ 500k ต่อชั่วโมง) คือ ...

(nautilus: 1618): GLib-GObject-CRITICAL **: g_value_get_object: การยืนยันว่า `G_VALUE_HOLDS_OBJECT (ค่า) 'ล้มเหลว

ซึ่งเป็นขยะทั้งหมดสำหรับฉัน ฉันได้ลองทำ symlink ไปยัง / dev / null แต่ไม่ได้ผล (ลิงก์ผลลัพธ์ถูกเขียนทับ) และฉันไม่ต้องการทำกิจกรรมเพื่อให้แล็ปท็อปของฉันสามารถเข้าสู่โหมดสลีปได้อีกครั้ง

ฉันใช้ Ubuntu 11.04 โดยไม่มีโปรแกรมเสริมพิเศษให้กับ Nautilus


เคล็ดลับนั้นใช้ไม่ได้กับฉันเพราะเมื่อเริ่มต้น/etc/X11/Xsessionจะไม่ตรวจสอบสิ่งที่ลิงก์สัญลักษณ์กำลังชี้ไป สำหรับฉันมันสร้างใหม่.xsession-errorsแฟ้มปกติและมีการเชื่อมโยงกับ.xsession-errors.old /dev/nullนั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการ.xsession-errorsเปลี่ยนเส้นทางไปที่/dev/null- อย่างเผื่อแผ่เว้นแต่ฉันจะเปลี่ยนเองอย่างชัดเจน
bjem

เพียงชี้แจง @ j-johan-edwards ฉันทดสอบคำสั่งของคุณและใช้งานได้ดีฉันแค่ต้องการให้มันถาวร
bjem

11.04 ใช้ GDM หรือ LightDM เป็นเครื่องมือจัดการหน้าจอหรือไม่
Detly

ฉันคิดว่าฉันเป็น GDM ถ้านั่นเป็นค่าเริ่มต้น ฉันไม่ได้เปลี่ยนยกเว้นจะอยู่ห่างจากเดสก์ท็อป Unity
bjem

ใช่ฉันเป็น GDM เห็นได้ชัดว่าเส้นทางที่.xsession-errorsจะเข้ารหัสยาก (?!) ลงในรหัสที่มา มีวิธีที่ดีที่จะเรียกใช้สคริปต์หลังจากโหลด GDM ที่จะเปลี่ยนเส้นทาง.xsession-errorsไป/dev/null?
bjem

คำตอบ:


10

ฉันพบโซลูชันชั่วคราว

ฉันใส่สคริปต์เล็ก ๆ ที่/etc/X11/Xsession.dเรียก91redirect-xsession-errorsว่าใช้งานได้ในตอนนี้ แต่ถ้าคุณต้องการให้ symlink แบบกำหนดเองของคุณเอง.xession-errorsมันใช้ไม่ได้ผล (ฉันลองแล้วมันไม่ได้ส่งข้อมูลใด ๆ )

#! / bin / ดวลจุดโทษ

# Redirect $ HOME / .xsession-errors เป็น / dev / null
# BJEM 11 มกราคม 2555

XSESSION_ERRFILE = $ HOME / .xsession-ข้อผิดพลาด

# ดูเหมือนว่าจะใช้งานไม่ได้กับไฟล์ปกติ
# ie ถ้าคุณต้องการ symlink $ 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 ซึ่งจะสร้าง symlink ไปยังไฟล์ 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

คุณสามารถ cp ไฟล์ Xsession นี้ไปที่ Xsession.bak จากนั้นไปที่หัวแล้วชี้ ERRFILE ของคุณไปที่ / dev / null IE บรรทัดที่ 83

exec >> /dev/null 2>&1

ขอขอบคุณ! ฉันหวังว่าฉันจะสังเกตเห็นคำตอบนี้ก่อนหน้านี้ ฉันจะให้รางวัลแก่คุณ 200 ชื่อเสียง ฉันได้ทำการแก้ไขที่ตรวจสอบตัวแปรสภาพแวดล้อม$NOXSESSIONERRORS paste.ubuntu.com/p/TFxZ344k2pด้วยวิธีนี้เราหวังว่าจะสามารถทำให้อัปสตรีมได้
int_ua

1
ขอบคุณมาก! นี่เป็นปัญหาใหญ่สำหรับฉันเมื่อหลายปีก่อนเมื่อฉันทำงานให้กับ บริษัท ที่ทำซุ้ม เราจะเรียกใช้จากการ์ดแฟลชขนาดเล็กซึ่งมักใช้กับกล้อง การ์ดเหล่านี้จะมีการเขียนจำนวนหนึ่งเท่านั้นก่อนที่จะล้มเหลวในการเขียนลงในการ์ด ดังนั้นการลบไฟล์หลาย ๆ ครั้งตามที่คนอื่นแนะนำจะทำให้ปัญหาแย่ลงเท่านั้น
earlonrails

มีคำถามซ้ำกับคำตอบของฉันที่นี่เช่นกันaskubuntu.com/questions/177058/ …
earlonrails

ฉันได้ทำการผสานเข้ากับสิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้ที่ต้นน้ำ : 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 {} \;" จากนั้นฉันลบข้อผิดพลาด x เซสชันด้วยตนเองโดยใช้คำสั่ง rm -rf


1
คำตอบนี้ไม่ได้บอกว่าจะหยุดข้อผิดพลาดได้อย่างไร มันบอกเพียงวิธีการลบ โปรดอัปเดตคำตอบของคุณ
Kaz Wolfe

0

โปรดทราบว่าการลบไฟล์. xsession-errors ไม่ได้เพิ่มพื้นที่ว่างจนกว่าระบบจะเริ่มต้นใหม่หากกระบวนการยังคงเขียนลงในไฟล์ ใช้ echo เพื่อเขียนทับเนื้อหาไฟล์เพื่อตั้งค่าไฟล์เป็นหนึ่งอักขระ จนถึงขั้นตอนการเขียนไปยัง. xsession-errors หยุดไฟล์จะเริ่มเติบโตอีกครั้งทันที ฉันฉันต้องหยุด Remmina แล้วตัดทอนไฟล์และฉันกลับไปทำงาน หมายเหตุช่วยด้วยถ้าคุณตั้งค่าขนาด จำกัด ของไฟล์เป็นกิ๊กไม่กี่ไฟล์ดังนั้นไฟล์. xsession-errors ของคุณจะไม่สามารถจัดเก็บไดรฟ์และทำให้ระบบล่มได้ ยังคงมองหาคำตอบสำหรับปัญหาของไวรัสในตัวระบบปฏิบัติการ Linux ทั้งหมด ดูเหมือนนักพัฒนาของ Microsoft ที่ให้ Linux ... ;-)


>.xsession-errors, :>.xsession-errors เป็นวิธีการที่ดีอื่น ๆ ที่ศูนย์ออกไฟล์
earlonrails
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.