Làm thế nào một kịch bản có thể phát hiện thời gian nhàn rỗi của người dùng?


33

Tôi muốn kiểm tra, bên trong tập lệnh bash, thời gian người dùng của phiên X không hoạt động.

Bản thân người dùng không phải sử dụng bash mà chỉ cần X. Nếu người dùng chỉ cần di chuyển chuột chẳng hạn, một câu trả lời tốt sẽ là "không hoạt động trong 0 giây". Nếu anh ta không chạm vào máy tính trong 5 phút, một câu trả lời tốt sẽ là "không hoạt động trong 300 giây"

Lý do không sử dụng xautolock ngay lập tức là để có thể thực hiện một số hành vi phức tạp. Ví dụ: nếu người dùng không sử dụng trong 10 phút, hãy thử tạm dừng, nếu anh ta không sử dụng trong 5 phút nữa, hãy tắt máy (tôi biết điều này nghe có vẻ kỳ quặc, nhưng việc đình chỉ không phải lúc nào cũng hoạt động ở đây ...)

Câu trả lời:


38

Chỉ cần tìm một cách đơn giản để làm điều đó.

Có một chương trình gọi là xprintidle thực hiện thủ thuật

nhận được thời gian nhàn rỗi (tính bằng mili giây) đơn giản như

xprintidle

và để cài đặt

apt-get install xprintidle

Đối với sysadmin, nó cũng hoạt động từ xa

Từ một phiên ssh :

export DISPLAY=:0 && sudo -u john xprintidle

Trong đó john là người dùng đăng nhập vào phiên X trên máy từ xa.


4

Trả lời từ đây :

Trong bash

w | tr -s " " | cut -d" " -f1,5 | tail -n+3

cung cấp cho bạn một cặp tên người dùng / idletime cho mỗi shell. Vì vậy, về cơ bản, bạn có thể nhận được thông tin nhàn rỗi thông qua lệnhw


Làm thế nào để tính tương tác này với X mà không thông qua một thiết bị đầu cuối? Giống như, nói một chuyển động chuột trong một firefox. Nếu người dùng đang di chuyển chuột, tôi muốn nhận được câu trả lời "không nhàn rỗi" hoặc "không hoạt động trong 0 giây"
josinalvo

@josinalvo wchỉ cho bạn thời gian nhàn rỗi trong thiết bị đầu cuối cụ thể mà tôi nghĩ.
Dan

3
Thời gian nhàn rỗi trên thực tế là thời gian chạy, thời gian hoạt động của quá trình (cột WHAT của đầu ra w). Vì vậy, nó không có ý tưởng về thời gian người dùng đã nhàn rỗi trong phiên X của mình.
Rosch
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.