Làm cách nào để ngăn lỗi .xsession-ăn không gian đĩa?


12

Có cách nào để vô hiệu hóa hoàn toàn tệp .xsession-lỗi không? Tôi có nó dưới dạng symlink tới / tmp để đĩa cứng máy tính xách tay của tôi có thể (hy vọng) đi ngủ một lần, nhưng ít nhất 95% nội dung trong tệp (nó lấp đầy khoảng 500 nghìn một giờ) là ...

(nautilus: 1618): GLib-GObject-CRITICS **: g_value_get_object: khẳng định `G_VALUE_HOLDS_OB DỰ ÁN (giá trị) 'không thành công

đó là tổng số rác cho tôi. Tôi đã thử thực hiện một liên kết tượng trưng đến / dev / null nhưng nó không hoạt động (liên kết kết quả bị ghi đè) và tôi cũng không muốn hoạt động này để hy vọng máy tính xách tay của tôi có thể đi ngủ một lần.

Tôi đang sử dụng Ubuntu 11.04, không có tiện ích bổ sung đặc biệt nào cho Nautilus.


Thủ thuật đó không hiệu quả với tôi, vì khi khởi động /etc/X11/Xsessionkhông kiểm tra xem liên kết tượng trưng đang trỏ đến cái gì. Đối với tôi, nó tạo ra một .xsession-errorstệp thông thường mới và có .xsession-errors.oldliên kết đến /dev/null. Đó không phải là điều tôi muốn. Tôi muốn .xsession-errorschuyển hướng đến /dev/null- vĩnh viễn trừ khi tôi tự thay đổi nó một cách rõ ràng.
bjem

Chỉ cần làm rõ @ j-johan-edwards. Tôi đã kiểm tra lệnh của bạn và nó hoạt động tốt, tôi chỉ muốn nó là vĩnh viễn.
bjem

11.04 có sử dụng GDM hoặc LightDM làm trình quản lý hiển thị không?
gièm pha

Tôi nghĩ của tôi là GDM, nếu đó là mặc định. Tôi đã không thay đổi nó ngoại trừ việc rời khỏi máy tính để bàn Unity.
bjem

Vâng, một của tôi là GDM. Rõ ràng đường dẫn đến .xsession-errorsđược mã hóa cứng (?!) Vào mã nguồn của nó. Có cách nào tốt để chạy tập lệnh sau khi tải GDM để chuyển hướng .xsession-errorsđến /dev/nullkhông?
bjem

Câu trả lời:


10

Tôi tìm thấy một giải pháp tạm thời.

Bây giờ tôi đã đặt một tập lệnh nhỏ /etc/X11/Xsession.dđược gọi là 91redirect-xsession-errorscông việc đó, nhưng nếu bạn muốn có liên kết tượng trưng tùy chỉnh của riêng mình .xession-errorsthì nó không hoạt động cho điều đó (tôi đã thử và nó không xuất ra bất kỳ dữ liệu nào).

#! / thùng / sh

# Chuyển hướng $ HOME / .xsession-lỗi sang / dev / null.
# NGÀY 11 tháng 1 năm 2012

XSESSION_ERRFILE = $ HOME / .xsession-lỗi

# Điều này dường như không hoạt động đối với một tệp thông thường,
# tức là nếu bạn muốn liên kết tượng trưng $ HOME / .xsession-lỗi
# đến tập tin khác. Tôi không biết tại sao.
XSESSION_ERRFILE_FINAL = / dev / null

# Tạo tập tin đích nếu nó không tồn tại.
chạm vào "$ XSESSION_ERRFILE_FINAL"

# Liên kết tệp .xsession-lỗi đến mục tiêu mong muốn
# không có vấn đề gì
ln -sf "$ XSESSION_ERRFILE_FINAL" "$ XSESSION_ERRFILE"

# Trường hợp thử nghiệm.
#gedit &

##### PHẦN CUỐI CỦA TẬP TIN #####

Đó là một chút 'thô bạo và sẵn sàng' nhưng nó làm công việc cho tôi. Lưu ý rằng đây là tập tin duy nhất đã bị thay đổi.


Thật không may, tôi đã không nhận thấy câu trả lời @earlonrails. / etc / X11 / Xsession sẽ tạo tệp trong / tmp nếu đó là một liên kết tượng trưng để phương thức này vô dụng.
int_ua

4

Có một tệp gọi là / etc / X11 / Xsession. Mà sẽ tạo symlink đến một tập tin tmp. I E. Bắt đầu trên dòng số 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

Bạn có thể cp tệp Xsession này sang Xsession.bak. Sau đó đi đầu và trỏ ERRFILE của bạn tới / dev / null IE. Dòng 83

exec >> /dev/null 2>&1

Cảm ơn bạn! Tôi ước tôi đã nhận thấy câu trả lời này sớm hơn. Tôi sẽ trao cho bạn 200 danh tiếng. Tôi đã tạo một bản vá kiểm tra biến môi trường $NOXSESSIONERRORS dán.ubfox.com/p/TFxZ344k2p theo cách này chúng tôi có thể hy vọng làm cho nó ngược dòng.
int_ua

1
Cảm ơn rất nhiều! Đây là một vấn đề lớn đối với tôi nhiều năm trước khi tôi làm việc cho một công ty sản xuất kiốt. Chúng tôi sẽ chạy chúng từ thẻ flash nhỏ gọn, thường được sử dụng cho máy ảnh. Những thẻ này sẽ chỉ có một số lần ghi nhất định cho chúng trước khi chúng không ghi vào thẻ. Do đó, việc xóa tệp nhiều lần, như một số người khác đề xuất, chỉ làm cho vấn đề trở nên tồi tệ hơn.
mộc nhĩ

Có một câu hỏi trùng lặp với câu trả lời của tôi ở đây cũng như Askubfox.com/questions/177058/ Khăn
Earlonrails

Tôi đã thực hiện một yêu cầu hợp nhất vào thứ gần nhất mà tôi có thể tìm thấy ở thượng nguồn : salsa.debian.org/xorg-team/xorg/merge_Vquests/7 Vui lòng thêm câu chuyện của bạn về các ki-ốt ở đó.
int_ua

0

Tôi gặp phải vấn đề tương tự trong máy chủ linux 6.4 nhưng tôi có thể tìm thấy thư mục hoặc người dùng nào chiếm nhiều dung lượng hơn bằng cách sử dụng lệnh này "find / -xdev -type f -size + 100000000c -exec ls -lh {} \;" sau đó tôi xóa thủ công x lỗi phiên bằng cách sử dụng lệnh rm -rf


1
Câu trả lời này không nói CÁCH để ngăn chặn các lỗi. Nó chỉ nói làm thế nào để xóa chúng. Hãy cập nhật câu trả lời của bạn.
Kaz Wolfe

0

Xin lưu ý rằng việc xóa tệp .xsession-error không giải phóng không gian cho đến khi hệ thống khởi động lại nếu một quá trình vẫn đang ghi vào tệp. Sử dụng echo để ghi đè lên nội dung tệp để đặt tệp thành một ký tự. Cho đến khi quá trình ghi vào .xsession-error dừng tệp sẽ bắt đầu phát triển lại ngay lập tức. Tôi phải dừng Remmina sau đó cắt tệp và tôi quay lại chạy. Lưu ý cũng có ích nếu bạn đặt kích thước giới hạn tệp của mình thành một vài gig để tệp .xsession-error của bạn không thể gửi ổ đĩa và làm sập hệ thống của bạn. Vẫn đang tìm kiếm câu trả lời cho vấn đề này về một loại virus tích hợp sẵn cho tất cả các hệ điều hành Linux. Có vẻ như các nhà phát triển của Microsoft đã đóng góp cho Linux ... ;-)


>.xsession-errors, :>.xsession-errors là những cách tốt khác để loại bỏ một tập tin.
mộc nhĩ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.