Linux
如何在 linux 中找到未鎖定的 tty?
我剛剛發現,當我在後台打開一個 tty 時,我的鎖屏是沒用的。我有時會使用另一個 tty 來殺死某個程序,然後我忘記了解鎖的 tty。這就是為什麼我想在我的 polybar 中顯示一個符號來顯示我是否在後台解鎖了會話。
我發現
getty@ttyX.service
我切換到至少一次的每個 tty 都有一個 systemd 單元執行。但我無法確定會話是否仍處於登錄狀態。你知道一種方法來檢查我是否在後台打開了 tty 會話嗎?
該
w
命令列出帶有 shell 的使用者和相應的終端,所以w | grep -e 'tty[0-9]'
如果存在打開的 TTY 會話,則返回 rc=0,否則返回 1。
如果
loginctl
知道您的會話,您可以使用它(複製How to return the current active user/session on a graphics Linux desktop session?):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 會話的數量。