Индикатор состояния в строке состояния на основе возвращаемого значения периодического выполнения команды
Я хочу периодически выполнять команду и на основе ее вывода иметь визуальную индикацию ее последнего возвращаемого значения (0: зеленый, ненулевое: красный).
например, используя команду ниже, я могу проверить, живо ли мое VPN-соединение.protected-node
доступен только через VPN, поэтому, если VPN неработоспособен или не работает, он вернет ненулевое значение.
nc -w5 -z vpn-only-accessible-node 80
Итак, как было сказано выше, я ищу способ преобразовать возвращаемое значение команды в визуальную индикацию в строке состояния или в какую-либо другую всегда видимую область на моем рабочем столе.
Я использую рабочий стол Mate.
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'
Любой из вышеперечисленных вариантов будет запускать вашу команду каждые пять секунд и отправлять вам визуальное уведомление на рабочем столе, которое отличается по внешнему виду и по содержанию.
Апплеты MATE , ответвление апплетов GNOME , должны содержать апплет с именем «Command», который периодически запускает команду и отображает выходные данные на верхней панели. Вероятно, вы сможете сразу добавить этот апплет на свою панель (если нет, вам, вероятно, придется установитьmate-applets
упаковка).
Хотя это и не совсем то, что вы хотите (вы получите текстовую индикацию вместо цветов), вы можете использовать его для выполнения сценария, который запускает вашу команду и выводит либо «ОК», либо «ОШИБКА» (или любой другой текст, который вам подходит) в зависимости от по коду возврата.