【问题标题】:Showing Zenity popup to all users向所有用户显示 Zenity 弹出窗口
【发布时间】:2013-05-21 17:43:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • “初始连接命令让我难过”……什么意思?
  • 抱歉,我只是说命令,只要我通过 SSH 连接以及用户登录时,我就可以运行它

标签: ubuntu zenity


【解决方案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 已登录,他们将有一个后台任务,每分钟检查一次新消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多