向所有用户显示Zenity弹出窗口

时间:2013-05-21 17:44:00

标签: ubuntu zenity

当我通过SSH登录时,我想向我机器上的其他用户显示zenity弹出窗口(或其他图形显示)。如何实现此功能以弹出其他用户?

当我通过SSH连接时,它应该显示给登录的用户,但是,如果用户在我连接时没有登录,然后登录,那么当他们登录时(我连接时)他们应该看到通知。

我希望我可以写一些在用户登录后检查的文件,以便在我连接后运行脚本,但这是我难倒的初始连接命令。

基本上这是我的家用电脑,我不想让我的家人在我做东西时把它关掉!

1 个答案:

答案 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已登录,他将有一个后台任务,每分钟检查一次新邮件。