根据定期执行命令的返回值在状态栏上显示状态指示器

根据定期执行命令的返回值在状态栏上显示状态指示器

我想定期执行一个命令,并根据其输出直观地显示其最后的返回值(0:绿色,非零:红色)。

例如,通过使用下面的命令,我可以检查我的 vpn 连接是否仍然有效且健康。protected-node只能通过 vpn 访问,因此如果 vpn 不健康或关闭,它将返回非零。

nc -w5 -z vpn-only-accessible-node 80

因此,如上所述,我正在寻找一种方法将命令的返回值转换为状态栏中的视觉指示或桌面上其他始终可见的区域。

我正在使用 mate 桌面。

答案1

MATE 小程序,一个分叉GNOME 小程序,应该包含一个名为“Command”的小程序,该小程序会定期运行命令并在顶部面板中显示输出。您应该可以立即将此小程序添加到您的面板中(如果不能,您可能需要安装mate-applets包)。

虽然这不是完全想要的(您将获得文本指示而不是颜色),但您可以使用它来执行运行您的命令的脚本,并根据返回代码输出“OK”或“ERROR”(或任何其他适合您的文本)。

在此处输入图片描述

答案2

使用notify-send,你总是可以做这样的事情:

while sleep 5
  do
    nc -w5 -z vpn-only-accessible-node 80 && \
    notify-send --icon=network-wired "OK" "OK" || \
    notify-send --icon=network-error "ERR" "Error"
    done

...或者在命令字符串中,您可以通过在启动应用程序中将其作为命令提供来运行,以便它在用户桌面登录时自动运行...就像这样:

/bin/bash -c 'while sleep 5; do nc -w5 -z vpn-only-accessible-node 80 && notify-send --icon=network-wired "OK" "OK" || notify-send --icon=network-error "ERR" "Error"; done'

以上任何一项都会每五秒运行一次您的命令,并向您发送外观和消息不同的可视桌面通知。

相关内容