사용자가 몇 분 동안 유휴 상태인지 표시하는 스크립트를 작성하고 싶습니다. 키보드와 마우스의 마지막 터치 이후. 예:
#!/bin/bash
while true
do
command_lines...
...
sleep 60
echo $var
done
결과:
컴퓨터/사용자가 1분 동안 유휴 상태입니다.
컴퓨터/사용자가 2분 동안 유휴 상태입니다.
...
컴퓨터/사용자가 5분 동안 유휴 상태입니다.
...
우리가 그렇게 할 수 있나요? Bash, Python 등에 있을 수 있습니다.
답변1
매뉴얼 페이지에서 "w" 명령이 도움이 될 것입니다:
w - 누가 로그온했는지, 무엇을 하고 있는지 보여줍니다.
# w | awk '{if (NR!=1) {print $1,$5 }}'
USER IDLE
root 0.00s
답변2
키보드와 마우스는 다중 사용자 시스템에서 명확한 개념이 아닙니다. 다중 사용자 시스템에서는 여러 X 서버가 시스템에서 실행되고, 일부는 하나 이상의 물리적 키보드나 마우스에 연결되거나 일부는 연결되지 않거나, 시스템에서 실행되는 터미널이 연결되는 원격 X 서버가 있을 수 있습니다. ssh를 통해 실행되는 bash 쉘과 "bash"가 사용자로부터 입력을 받을 수 있는 더 많은 방법...
"xprintidle"은 연결된 X 서버의 유휴 시간을 제공합니다(해당 X 서버는 로컬이거나 원격일 수 있으며 심지어 로컬일 수도 있으며 시스템에서 현재 활성 상태일 필요는 없습니다).
$TTY의 수정 시간은 단말기의 유휴 시간을 알려줍니다. stat -c %Y "$TTY"는 초 단위의 마지막 수정 시간이며, "$(date +%s)"(GNU 시스템의 경우)에서 뺄 수 있습니다.