Tại sao khóa máy tính để bàn ngừng hoạt động sau một thời gian?


14

xautolockrõ ràng đang chạy :

$ ps wafux | grep [x]autolock
user   21410  0.0  0.0  20124  2628 ?        S    Nov05   0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock

Tuy nhiên, khi tôi cố gắng khóa nó :

$ xautolock -locknow
Could not locate a running xautolock.

Nếu tôi quay cái khác, xautolocknó hoạt động:

$ xautolock -time 10 -notify 30 -notifier "notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds'" -locker slock&
[2] 18828
$ ps wafux | grep [x]autolock
user   21410  0.0  0.0  20124  2628 ?        S    Nov05   0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
user   18828  0.0  0.0  20124  2708 pts/1    S    08:30   0:00      \_ xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
$ xautolock -locknow # Runs fine and locks the desktop

Đưa cái gì?

Đến bây giờ tôi đã thấy điều này trên cả máy tính để bàn và máy tính xách tay của tôi. Xin lưu ý rằng ít nhất là lần đầu tiên sau khi khóa khởi động hoạt động tốt. Chỉ sau một thời gian không xác định hoặc sự kiện nó bắt đầu thất bại.


Tôi đã không thể tái tạo điều này một cách đáng tin cậy. Đó là, tôi đã thử các cách tiếp cận sau trên máy tính xách tay của mình và trong cả hai trường hợp, phím tắt / lệnh bảo vệ màn hình thực sự khóa máy tính để bàn sau đó:

  1. Đóng nắp
  2. Đợi máy tính ngủ đông
  3. Mở nắp
  4. Bấm nút nguồn
  5. Cung cấp mật khẩu đăng nhập theo sau Enter

  1. Khóa máy tính để bàn
  2. Các bước tương tự như trên

Truy tìm mã:

  1. Dòng in thông báo lỗi :error1 ("Could not locate a running %s.\n", progName);
  2. Điều đó xảy ra nếu sự messageToSendthậttype != XA_INTEGER
  3. Có vẻ như typeđược đặt trong tuyên bố sau:

    (void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False,
                               AnyPropertyType, &type, &format,
                               &nofItems, &after,
                               (unsigned char**) &contents);
    

Điều này có nghĩa là việc chạy xautolockđược phát hiện có thể phụ thuộc vào cửa sổ được tập trung không? Tôi cũng tự hỏi nếu cuộc gọi này có thể liên quan đến lỗi đã biết này :

  1. Các tùy chọn -disable, -enable, -toggle, -exit, -locknow, -unlocknow và -restart phụ thuộc vào quyền truy cập vào máy chủ X để thực hiện công việc của họ. Điều này ngụ ý rằng họ sẽ bị đình chỉ trong trường hợp một số ứng dụng khác đã tự mình lấy máy chủ.

Có thể là xautolockxung đột với xss-lock, cả hai đều đang sử dụng slock? Ngoài xautolockdòng trên tôi cũng có dòng này trong .xprofile :

xss-lock slock &

Vì cả hai xautolockxss-lockcó thể gọi slock, tôi nghi ngờ rằng vấn đề xảy ra như thế này:

xss-lockcó thể phát hiện giấc ngủ của máy tính xách tay, tôi muốn sử dụng nó thay vì xautolock, nhưng dường như tôi không thể làm xss-lockviệc được notify-send.


Bạn đang sử dụng unix nào?
kasperd

Tôi đang gặp vấn đề tương tự. Tôi đã không nhìn quá sâu vào nó, nhưng tôi cũng rất muốn biết câu trả lời.
HalosGhost

Làm thế nào bạn bắt đầu nó? Gần đây tôi đã tìm thấy một điều tương tự khi bắt đầu nó từ .xinitrc: Tôi đã chuyển sang một --usertệp dịch vụ và nó không còn là vấn đề nữa ...
jasonwryan

1
Phát video với mpv (nhưng không phải mplayer) gây ra vấn đề cho tôi. Cả hai người chơi có cấu hình trống.
JRM

1
Một cách giải quyết ít hơn tối ưu cho trình kích hoạt này là thêm stop-screensaver=novào ~/.mpv/config. Tất nhiên, điều này có nghĩa là bạn phải tắt thủ công khóa khi phát video với mpv.
JRM

Câu trả lời:


5

Đối với tôi, quá trình xautolock vẫn đang chạy trong nền, nhưng nó không nghe bất kỳ xautolock -locknowlệnh nào . Như @jrm đã đề cập, một ứng dụng phải được loại bỏ "trình bảo vệ màn hình" . Đối với cả hai chúng tôi, điều này là do mpv (trình phát video) vô hiệu hóa trình bảo vệ màn hình.

Đối với mpv, cách khắc phục là thêm phần sau vào ~/.config/mpv/confighoặc ~/.mpv/config:

stop-screensaver=no

Nếu bạn không sử dụng mpv, đó có thể là một ứng dụng khác vô hiệu hóa trình bảo vệ màn hình. Hãy thử một vài cái thường được sử dụng để xem nó là cái nào.


Nếu bạn muốn ngăn khóa màn hình tự động trong khi phát lại video , một cách phổ biến là sử dụng tính năng "góc" của xautolock:

xautolock -corners 000- -cornersize 30

Với lệnh trên, nếu bạn đặt con trỏ chuột ở góc dưới bên phải của màn hình (trong bán kính 30px), khóa tự động sẽ tạm thời bị vô hiệu hóa.


Một điều nữa để thử là -resetsavertùy chọn:

xautolock -resetsaver

Hoặc -detectsleeptùy chọn:

xautolock -detectsleep

Lời khuyên tốt, cảm ơn! Tôi đã nhận thức được trình phát video (VLC) của mình vô hiệu hóa khóa màn hình trong nhiều năm, nhưng thành thật mà nói vấn đề này đã lùi xa đến mức tôi không thể nhớ lại nếu tâm trí tôi chỉ đơn giản là che giấu sự thật này. Dù sao tôi đã ngừng sử dụng xautolock, vì vậy câu hỏi bây giờ là một chút. Đánh dấu là chấp nhận là câu trả lời hữu ích nhất cho đến nay. Nếu bất cứ ai có cùng một vấn đề chính xác, tôi có thể xóa câu hỏi này để tránh trùng lặp.
l0b0
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.