четверг, 1 июня 2023 г.

Лаунчер (кнопка запуска) для проверки состоянии синхронизации времени в Cinnamon

В Cinnamon по умолчанию синхронизация с серверами точного времени производится через systemd службой  systemd-timesyncd  В публикациях Интернет на эту тему запрос состояния синхронизации времени необходимо производить через выполнение команды в терминале  timedatectl timesync-status  На мой взгляд, запускать терминал, а затем вводить в него команду, которую ещё надо помнить, является не совсем удобным. Очень хочется это делать через кнопку запуска, как описывалось в сопутствующей публикации про xfce.

Можно попробовать создать лаунчер в последующем переносом его в скрытую папку профиля пользователя системы:  ~/.local/share/applications  


Но если указать в качестве команды timedatectl timesync-status и установить галочку в поле "Запустить в терминале", то при проверке получится большой сюрприз: окно терминала откроется и моментально закроется, в результате чего никакой информации получить не удастся. 

Суть проблемы заключается в том, что необходимо удержать окно терминала Gnome.

Команда должна быть:  

sh -c 'timedatectl timesync-status | cat - /dev/tty'  

То есть результирующий файл desktop, соответствующий создаваемому лаунчеру, в текстовом редакторе должен выглядеть следующим образом:

[Desktop Entry]
Version=1.0
Type=Application
Name=NTP status
Comment=
Exec=sh -c 'timedatectl timesync-status | cat - /dev/tty'
Icon=adjustrgb
Path=
Terminal=true
StartupNotify=false

Имя файла значка Icon= у вас будет своё, то есть того значка, который вы выберите.

По умолчанию этот значок запуска будет расположен в категории "Прочее". Если нужно, чтобы он отображался, например, в категории "Система", то добавьте строку (открыть в текстовом редакторе) 

Categories=Network;System;

Результат запуска (пример):


На рисунке выше IP-адрес сервера ntp.ubuntu.com не является действительным IP-адресом этого ресурса. На локальном DNS была создана статическая запись, сопоставляющая узлу ntp.ubuntu.com запись CName, указывающая на географически более близкий сервер NTP. 

Примечание. При возникновении ситуации когда всё равно не срабатывает можно создать простой скрипт sh, который результат команды timedatectl timesync-status запишет в файл timesync.txt, а затем этот файл будет открыт в текстовом редакторе xed. В лаунчере в строке Exex= указать полный путь к скрипту sh. Скрипт может быть таким:

#!/bin/bash
timedatectl timesync-status > /tmp/timesync.txt
xed /tmp/timesync.txt &
exit

Пример выполнения:



Интерпретацию результатов вывода читайте в указанной выше публикации (в самом конце).  

Комментариев нет:

Отправить комментарий