Автор Тема: Есть предложение по разработке апплета для etcnet  (Прочитано 2733 раз)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Добавьте в файл polkit.service в секцию [Unit] строчку Before=NetworkManager.service
Добавил. Нужна ещё одна визуализация ?


Я вам и на слово поверю :-) Результата так и нет?

На dnsmasq завел баг: https://bugzilla.altlinux.org/show_bug.cgi?id=31025

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Добавьте в файл polkit.service в секцию [Unit] строчку Before=NetworkManager.service
Добавил. Нужна ещё одна визуализация ?


Я вам и на слово поверю :-) Результата так и нет?
Результат есть. Но... Я же говорил, что переключалка всё же нужна. Я понимаю, что etcnet инструмент для продвинутых, но простой рубильник соединений в графической среде почему бы не иметь. Дистрибутивы на icewm, мне кажется, только выиграют. Да и в некоторых случаях NM реально несколько монструозен и ненужен, вполне было бы достаточно лёгкого апплета.
На dnsmasq завел баг: https://bugzilla.altlinux.org/show_bug.cgi?id=31025
Так это и в сизифе проявляется ?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Так это и в сизифе проявляется ?

Если сетка будет также долго как у вас подниматься, то, думаю, обязательно проявится. Юнит идентичный. Плюс баг будет на майнтейнере, а не на Андрее.

Результат есть.

NetworkManager за сколько секунд поднимается теперь? Если мой рецепт проблему с порядком загрузки polkit и NetworkManager решил, то надо на polkit багу вешать с предложением.

Я понимаю, что etcnet инструмент для продвинутых, но простой рубильник соединений в графической среде почему бы не иметь.

Я только за. Только написать его, боюсь, не такая уж простая задача.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
NetworkManager за сколько секунд поднимается теперь? Если мой рецепт проблему с порядком загрузки polkit и NetworkManager решил, то надо на polkit багу вешать с предложением.
Polkit грузится быстро, NM в пике до 10.8 секунд доходит, бывает и меньше 9 секунд. Т.о. эту незадачу можно считать решённой. Хорошо бы этот рецепт зафиксировать, чтобы и другие могли проверить. по результатам можно будет накатать коллективную жалобу в багзиллу :)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Polkit грузится быстро, NM в пике до 10.8 секунд доходит, бывает и меньше 9 секунд. Т.о. эту незадачу можно считать решённой

10,8 дофига, давайте всё-таки график посмотреть.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Polkit грузится быстро, NM в пике до 10.8 секунд доходит, бывает и меньше 9 секунд. Т.о. эту незадачу можно считать решённой

10,8 дофига, давайте всё-таки график посмотреть.
А сегодня опять двадцать пять. Тут дело в чём-то другом похоже
# systemd-analyze blame
         19.595s NetworkManager.service
          6.266s systemd-udev-settle.service
          4.084s systemd-fsck-root.service
          2.638s systemd-fsck@dev-disk-by\x2duuid-7dd4d2ce\x2dffc0\x2d4a03\x2da876\x2db5e50893dac5.service
          2.310s systemd-fsck@dev-disk-by\x2duuid-10cab70c\x2d0a1f\x2d49c8\x2daefd\x2da6f8f9d7682e.service
          1.092s systemd-modules-load.service
           983ms dev-hugepages.mount
           981ms dev-mqueue.mount
           940ms altlinux-kmsg-loglevel.service
           936ms sys-kernel-debug.mount
           700ms home.mount
           575ms systemd-udev-trigger.service
           481ms systemd-udevd.service
           480ms altlinux-update_chrooted.service
           452ms systemd-vconsole-setup.service
           364ms systemd-sysctl.service
           304ms dnsmasq.service
           289ms x11presetdrv.service
           279ms altlinux-save-dmesg.service
           257ms boot.mount
           236ms systemd-readahead-replay.service
           233ms altlinux-idetune.service
           222ms udisks2.service
           222ms console-kit-log-system-start.service
           171ms swap.swap
           146ms polkit.service
           122ms console-kit-daemon.service
            98ms avahi-daemon.service
            97ms network.service
            84ms mnt-sdb1.mount
            84ms systemd-logind.service
            63ms systemd-readahead-collect.service
            56ms cpufreq-simple.service
            31ms tmp.mount
            23ms systemd-remount-fs.service
            10ms systemd-tmpfiles-setup.service
             8ms upower.service
             7ms systemd-user-sessions.service
             6ms systemd-random-seed-load.service
             5ms systemd-journal-flush.service
             4ms var-lock.mount
             4ms systemd-update-utmp-runlevel.service
             1ms systemd-readahead-done.service
             1ms var-run.mount
Добавьте в файл polkit.service в секцию [Unit] строчку Before=NetworkManager.service
Юнит для polkit с этим изменением у меня.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Юнит для polkit с этим изменением у меня.

Ну, вы же видите, что мои предлагаемые изменения никак не помогли. Запускается polkit каждый раз от фонаря, и через одинаковое время после его запуска загружается NetworkManager. Проблема в polkit, стопроцентно, так как зависимость прямая. Я не знаю, как заставить polkit грузиться раньше NetworkManager, наверное нужно к какой-то цели его, что ли приписать. Заводите багу на polkit, может майнтейнер откликнется. Покажите в баге несколько графиков, чтобы было видно, что зависимость действительно есть. Ссылочку на баг сюда.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Ну, вы же видите, что мои предлагаемые изменения никак не помогли.
Так вчера вроде были изменения.
Запускается polkit каждый раз от фонаря, и через одинаковое время после его запуска загружается NetworkManager. Проблема в polkit, стопроцентно, так как зависимость прямая. Я не знаю, как заставить polkit грузиться раньше NetworkManager, наверное нужно к какой-то цели его, что ли приписать. Заводите багу на polkit, может майнтейнер откликнется. Покажите в баге несколько графиков, чтобы было видно, что зависимость действительно есть. Ссылочку на баг сюда.
Будет лучше, если это сделает более компетентный участник. Глубже NM я как бы и не собирался углубляться (думая, что дело в нём), но так получилось :)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Так вчера вроде были изменения.

Ага, у systemd зачесалась левая пятка и он решил polkit запустить чуть пораньше :-) Майнтейнер ошибочно предположил, что от polkit ничего не зависит и ни к каким целям его привязывать не надо, а оказалось, что от него NetworkManager зависит таки. У меня на виртуалке polkit стабильно грузиться начинает раньше, но это скорее всего потому, что ресурсов маловато физических и systemd сервисы по одному пускать старается или просто мне везёт, а вам почему-то нет. Лады сам повешу, но позже.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
tk/tcl ?

%)

#!/bin/bash
#\
exec wish "$0" "$@"

# Необходимы пакеты tk, tcl-tksystray, tcl-img

#############################################################################################
#            Основные настройки НАЧАЛО
#############################################################################################
global myname
set myname "My EchNet"
global mymess
set mymess "My EchNet - тра-ля-ля"
global runexe
set runexe "/usr/bin/acc"
global pingurl
set pingurl "forum.altlinux.org"

# Картинка в трее
global tray_i
global tray_i2
global mytray
set mytray 1

# Картинки файлы
if { [ catch { package require img::png } ] }  {
set tray_i "/usr/share/tcltk/tk8.5/images/tai-ku.gif"
set tray_i2 "/usr/share/tcltk/tk8.5/images/logoMed.gif"
} else {
set tray_i "/usr/share/pixmaps/leafpad.png"
set tray_i2 "/usr/share/pixmaps//gqview.png"
}
if { ![ file exists $tray_i ] } {
    set mytray 0
    tk_messageBox -icon info -type ok -title "image not found" -parent .  -message "image $tray_i not found!"
}
if { ![ file exists $tray_i2 ] } {
    set mytray 0
    tk_messageBox -icon info -type ok -title "image not found" -parent .  -message "image $tray_i2 not found!"
}



#############################################################################################
#            Основные настройки КОНЕЦ
#############################################################################################
global icontype
set icontype 0

global trayicon
global myicon
set myicon .ico


global net
set net "..."

global pingexe
set pingexe "ping -c 1  $pingurl  | grep '1 received'"


# Проверка а получится ли иконка в трее
if { [ catch { package require Tk} ] }  {set mytray 0}

if { [ catch { package require tray} ] }  {
if { [ catch { package require Tray} ] }  {
    set mytray 0
    tk_messageBox -icon info -type ok -title "tray or Tray or tktray package not found" -parent .  -message "tray or Tray or tktray package not found (tcl-tksystray)!"
} else {set icontype 1}
} else {
set icontype 2
}
# icontype=2 - for tray 0.2  icontype=1 - for tray 0.1


proc But1 {} {
    global runexe

    catch {exec sh -c $runexe } out]
}

proc But2 {x y} {
    global mytray
    global myname
    global mymess

    set x [expr $x-400]
    if { $y >300 } {
    set y [expr $y-427]
    } else {
    set y [expr $y+10]
    }

    set eee4 [exec ip a]

    toplevel .myexit
    wm geometry .myexit 400x400+$x+$y
    wm title .myexit "Close $myname ?"
    label .myexit.te -justify left -text "$mymess\n--------------------------------------------------------------------------------------------------------\n$eee4\n--------------------------------------------------------------------------------------------------------\nЗакрыть програму ?"
    place .myexit.te -x 5 -y 5

    button .myexit.ex -text "ДА, закрыть '$myname'" -command {set mytray [expr $mytray+2]; destroy .;}
    place .myexit.ex -x 2 -y 370
    button .myexit.clo -text "НЕТ" -command "destroy .myexit"
    place .myexit.clo -x 300 -y 370

}

proc balloon {text x y} {

    global net

    set x [expr $x+3]
    if { $y >300 } {
    set y [expr $y-18]
    } else {
    set y [expr $y+10]
    }
    catch [destroy .balloon]
    toplevel .balloon
    wm geometry .balloon 130x15+$x+$y
    label .balloon.lab -text "$text $net" -background white
    pack .balloon.lab -fill both -expand true
    wm overrideredirect .balloon true
    raise .balloon .
    focus -force .balloon
    after 3000 [list destroy .balloon]
}

proc MyRun {} {

    global pingexe
    global net
    global trayicon
    global tray_i
    global tray_i2
    global icontype

    set eee4 [ catch { exec sh -c $pingexe } out]

    if {$eee4 == "1"} {
set net "OffLine"
if { $icontype==1 } {configureti $trayicon -pixmap $tray_i2}
if { $icontype==2 } {configureti $trayicon -pixmap ico2}
    } else {
set net " OnLine !"
if { $icontype==1 } {configureti $trayicon -pixmap $tray_i}
if { $icontype==2 } {configureti $trayicon -pixmap ico1}
    }
    after 1000 MyRun2
}

proc MyRun2 {} {
    MyRun
}




if { $mytray == 1 } {

    if { $icontype==1 } {
if {![ catch { set trayicon [newti $myicon -pixmap $tray_i ] } ] } {
            bind $myicon <ButtonRelease-1> But1
            bind $myicon <Enter> [list balloon "$myname: " %X %Y]
        bind $myicon <ButtonRelease-3> [list But2 %X %Y]
        } else {
        set mytray 0
        }
    }
    if { $icontype==2 } {
image create photo ico1 -file $tray_i
image create photo ico2 -file $tray_i2
if {![ catch { set trayicon [newti $myicon -pixmap ico1 ] } ] } {
            bind $myicon <ButtonRelease-1> But1
            bind $myicon <Enter> [list balloon "$myname: " %X %Y]
        bind $myicon <ButtonRelease-3> [list But2 %X %Y]
        } else {
        set mytray 0
        }
    }

    if { $mytray == 1 } {
wm withdraw .
MyRun
    } else {
tk_messageBox -icon info -type ok -title "Error" -parent . -message "Невозможно создать иконку в трее!"
    }
} else {
    tk_messageBox -icon info -type ok -title "Error" -parent . -message "Невозможно создать иконку в трее!"
}

wm protocol . WM_DELETE_WINDOW chk_exit

proc chk_exit {} {
    global mytray
    global myicon
    removeti $myicon;
    exit
}



вот если бы можно было бы сразу в acc нужную страничку открывать...

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
вот если бы можно было бы сразу в acc нужную страничку открывать...
Сделайте как в system-config-printer: там ссылка в acc, а открывается сама программа настройки принтера.
Андрей Черепанов (cas@)

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
tk/tcl ?
А оно умеет несколько разных подключений на одном физическом адаптере ? Как бы именно этот функционал в моём случае будет востребован больше, а между разными подключениями, так и быть, можно через acc переключаться (выключать один, включать другой). Вот если оно будет уметь несколько на одном, то было бы здорово (правда не знаю, etcnet такое позволяет или это надо очередной слой абстракции вводить).

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Майнтейнер ошибочно предположил, что от polkit ничего не зависит и ни к каким целям его привязывать не надо, а оказалось, что от него NetworkManager зависит таки.

Снова оффтоплю. По крайней мере на Сизифе удачность запуска NetworkManager.service от polkitd.service никак не зависит. Но и версия NetworkManager там 1.02, а в p7 0.9.8

sb, если вам не сложно, наберите статистику у себя в виде графиков хотя бы с 10 загрузок. Можно в личку их мне потом, чтоб не засорять вашу тему. Надо убедиться, что связь с polkit таки есть, а то может быть банальное совпадение.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
sb, если вам не сложно, наберите статистику у себя в виде графиков хотя бы с 10 загрузок. Можно в личку их мне потом, чтоб не засорять вашу тему.
Хорошо сделаю, но позже, а может быть уже завтра.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Хорошо сделаю, но позже, а может быть уже завтра.
Вот, проэкспериментировал. Первый и последний на холодную (с выключением). Все остальные на горячую (просто перезагрузка).
Можно в личку их мне потом, чтоб не засорять вашу тему.
В личку не получится, прикрепить файл я что-то не нашёл как.