방금 백그라운드에서 tty를 열면 잠금 화면이 쓸모 없게 된다는 것을 발견했습니다. 나는 때때로 다른 tty를 사용하여 일부 프로세스를 종료한 다음 잠금 해제된 tty를 잊어버립니다. 이것이 바로 Polybar에 기호를 표시하여 백그라운드에서 세션 잠금을 해제했는지 표시하려는 이유입니다.
[email protected]
나는 적어도 한 번 전환한 모든 tty에 대해 시스템 장치가 실행되고 있음을 발견했습니다 . 하지만 세션이 아직 로그인되어 있는지 확인할 수 없습니다.
백그라운드에서 tty 세션이 열려 있는지 확인하는 방법을 알고 있나요?
답변1
이 w
명령은 쉘과 해당 터미널을 가진 사용자를 나열하므로
w | grep -e 'tty[0-9]'
열려 있는 TTY 세션이 있으면 rc=0을 반환하고 그렇지 않으면 1을 반환합니다.
답변2
loginctl
세션이 알려진 경우 해당 세션을 사용할 수 있습니다(반복그래픽 Linux 데스크탑 세션에서 현재 활성 사용자/세션을 반환하는 방법은 무엇입니까?):
for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }')
do loginctl show-session -p User -p Type -p Remote $sessionid | sort
done |
awk -F= '/Type/ { type = $2 } /Remote/ { remote = $2 } /User/ && remote == "no" && type == "tty" { sessions++ } END { print sessions }'
현재 열려 있는 비원격 tty 세션 수가 계산됩니다.