0

当我通过 SSH 登录时,我想在我的机器上向其他用户显示一个 zenity 弹出窗口(或其他图形显示)。我怎样才能实现这一点以弹出其他用户?

当我通过 SSH 连接时,它应该向已登录的用户显示,而且,如果用户在我连接时未登录,随后登录,那么当他们登录时(当我连接时),他们应该会看到通知。

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

基本上这是给我的家用电脑的,我不希望我的家人在我做事的时候把它关掉!

4

1 回答 1

0

假设您和您的家人将 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 已登录,他们将有一个后台任务,每分钟检查一次新消息。

于 2013-05-22T15:17:35.377 回答