Genmon plugin
Модератор: Модераторы разделов
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Genmon plugin
Чот я не понимаю... с простеньким тестовым скриптом все Ок, но если в него добавить запуск подпроцесса (который может отрабатывать довольно долго), то все, даже окно конфига виснет. Как можно победить и почему это вообще происходит, интересно было бы знать.
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
Посмотрел. Тормозит столько, сколько нужно, чтобы скрипт отработал. Вряд ли можно победить.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
А жаль. В таком виде он не особо и нужен.
А что, если скажем переписать скрипт на Perl - там же можно обойтись без дочерних процессов?
А что, если скажем переписать скрипт на Perl - там же можно обойтись без дочерних процессов?
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
А причём тут дочерние процессы? Время работы скрипта имеет значение, а не наличие или отсутствие дочерних процессов.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Надо будет поэкспериментировать в терминале, чтобы стало понятнее
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Но вот такой вариант:
в терминале отрабатывает корректно - выход после "42", без ожидания завершения функции. А genmon за каким-то фигом ждет. Почему?
Код: Выделить всё
echo 42
sp() {
sleep 5
echo End
exit
}
(sp &) &
exit
в терминале отрабатывает корректно - выход после "42", без ожидания завершения функции. А genmon за каким-то фигом ждет. Почему?
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Спасибо. Там же чуть выше: "/* Wait for child completion */", вопрос можно считать закрытым. Хотя в логику разрабов я все равно не въезжаю.
UPD
Как вариант genmon`ом можно просто читать файл, а писать туда из другого процесса.
UPD
Как вариант genmon`ом можно просто читать файл, а писать туда из другого процесса.
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Дело в том, что мне нужны были часы. Но без минутной стрелки)) Для этого и понадобился genmon-plugin.
Данные часы показывают только "XX:00+" и "XX:30+", только кратное получасу время. Быдлокод конечно жуткий, я за последнее время разучился писать на bash.
Сам плагин: команда 'cat ~/.genmon-time' : 2000.
Справка по сабжу: http://goodies.xfce.org/projects/panel-plu...4-genmon-plugin
Данные часы показывают только "XX:00+" и "XX:30+", только кратное получасу время. Быдлокод конечно жуткий, я за последнее время разучился писать на bash.
Код: Выделить всё
#!/bin/sh
out=~/.genmon-time
cel="??"
genmon_refresh() {
xfce4-panel --plugin-event=genmon-5:refresh:bool:true
}
wtrite_time() {
if ((60 - $(date +%-M) > 30)) # first half of hour?
then echo "<txt> $(date +%H):00+</txt><tool>$(date +%a,\ %d) $cel</tool>" > $out
else echo "<txt> $(date +%H):30+</txt><tool>$(date +%a,\ %d) $cel</tool>" > $out
fi
}
get_temp() {
# some code
}
get_temp &>/dev/null
sleep 4
wtrite_time && genmon_refresh
while true
do
m=$(date +%-M)
k=$(($m % 30))
delta=$((30 - $m))
if (($k != 0)) # not XX:00, not XX:30
then
if (($delta < 0)) # "14:35" -> -5
then delta=$((30 + $delta)) # -> 25
fi
sleep $(($delta * 60))
wtrite_time && genmon_refresh
else
wtrite_time && genmon_refresh
sleep $((30 * 60))
fi
get_temp &>/dev/null
done
Сам плагин: команда 'cat ~/.genmon-time' : 2000.
Справка по сабжу: http://goodies.xfce.org/projects/panel-plu...4-genmon-plugin
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
Ужас какой.
Вызов скрипта запихать непосредственно в genmon.
Код: Выделить всё
#!/bin/sh
m=$(date +%-M)
m=$((m / 30 * 30))
date "+<txt> %H:$m+</txt><tool>%a, %d ??</tool>"
Вызов скрипта запихать непосредственно в genmon.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Знаю, что ужас))
Никак не пойдет - нужна синхронизация с реальным временем (с моментами час:00 минут, час:30 минут), а не с периодом обновления плагина. Т. е. он используется даже не по назначению, а только для вывода текста на панель.
Вызов скрипта запихать непосредственно в genmon.
Никак не пойдет - нужна синхронизация с реальным временем (с моментами час:00 минут, час:30 минут), а не с периодом обновления плагина. Т. е. он используется даже не по назначению, а только для вывода текста на панель.
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
Не понял. Чем время не реальное, и как Вы хотите синхронизироваться, если не с периодичностью обновления плагина?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Плагин обновляется командой из скрипта, не зря ссылку на документацию дал. Сам период обновления плагина не используется, можно выставить хоть 5 часов
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Т. е. плагин получает команду refresh только в начале часа и в середине, точно_в_это_время. А так да, сам вывод 'date' можно конечно переместить и в плагин, но в сущности это ничего не изменит. Извращенская хотелка, реализованная соответствующими методами
-
- Модератор
- Сообщения: 21007
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Genmon plugin
А смысл? Ну если очень хотите — пропишите в crontab команду обновления.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 70
- ОС: GuixSD, когда-нибудь
Re: Genmon plugin
Bizdelnick писал(а): ↑01.02.2018 20:40А смысл? Ну если очень хотите — пропишите в crontab команду обновления.
А я забыл про crontab Вариант, если можно можно выставить интервал в 30 минут.