当我通过SSH登录时,我想向我机器上的其他用户显示zenity弹出窗口(或其他图形显示)。如何实现此功能以弹出其他用户?
当我通过SSH连接时,它应该显示给登录的用户,但是,如果用户在我连接时没有登录,然后登录,那么当他们登录时(我连接时)他们应该看到通知。
我希望我可以写一些在用户登录后检查的文件,以便在我连接后运行脚本,但这是我难倒的初始连接命令。
基本上这是我的家用电脑,我不想让我的家人在我做东西时把它关掉!
答案 0 :(得分:1)
以下是一种基本概要,假设您和您的家人将bash作为登录shell。假设您是用户“joe”,您的家人包含“user1”,“user2”和“user3”。
在.bash_login中:
for user in user1 user2 user3; do
echo "JOE is logged in, do not turn power off" > /tmp/message.$user
done
在.bash_logout中:
for user in user1 user2 user3; do
[ -f /tmp/message.$user ] && rm /tmp/message.$user
done
现在,在其他每个用户的.bash_login中:
export MSGFILE=/tmp/message.$USER
check_messages() {
while [ 1 ]; do
if [ -f $MSGFILE ]; then
zenity --text-info --filename=$MSGFILE
rm $MSGFILE
fi
sleep 60
done
}
check_messages &
因此,如果userX已登录,他将有一个后台任务,每分钟检查一次新邮件。