Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 23, 2018 20:19:49

SharkyEXE
Зарегистрирован: 2017-12-10
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

BM21

Здравствуйте.

`; код-завершения: 256 - это не нормально

Это ситуация, когда несуществующий сервер ntp99.vniiftri.ru + это систуация, когда я физически выдернул кабель

Нормально - вот лог

 Программа существует по указанному пути
Начинаю выполнять команду: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u  20 ntp99.vniiftri.ru && echo "
"Результат выполнения команды: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u  20 ntp99.vniiftri.ru && echo "
"; вывод: `23 Sep 19:05:16 ntpdate[924]: ntpdate 4.2.4p0@1.1472 Sat Apr 28 20:21:34 Universal 2007 (1)
`; код-завершения: 256
Программа существует по указанному пути
Начинаю выполнять команду: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u  20 ntp2.vniiftri.ru && echo "
"Результат выполнения команды: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u  20 ntp2.vniiftri.ru && echo "
"; вывод: `23 Sep 19:13:24 ntpdate[932]: ntpdate 4.2.4p0@1.1472 Sat Apr 28 20:21:34 Universal 2007 (1)
23 Sep 19:13:24 ntpdate[932]: adjust time server 89.109.251.22 offset 0.023448 sec
`; код-завершения: 0

Отредактировано SharkyEXE (Сен. 23, 2018 20:23:12)

Офлайн

#2 Сен. 23, 2018 20:22:11

BM21
Зарегистрирован: 2018-09-15
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

SharkyEXE
et 0.02
Ну вот значит надо просто код завершения программы в нужном месте проверять. а не еее вывод.

Сейчас покажу.
В нужном месте.

 fo = popen(cmd)
 output = fo.read() # Можно это не писать
exit_code = fo.close() # Вот тут exit_code будет код возврата если он None то все ок иначе интернет и.т.д.

Отредактировано BM21 (Сен. 23, 2018 20:24:09)

Офлайн

#3 Сен. 23, 2018 20:22:56

SharkyEXE
Зарегистрирован: 2017-12-10
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

BM21

Здравствуйте.

Если вкратце - как сделать так, чтобы при код-завершения: 256 - появляется сообщение ntpdate problem: Internet connection ok? Time server ok? , а вот окно self.session.open(MyConsole, _(“Системное время с NTP …”), ) не появляется

Отредактировано SharkyEXE (Сен. 23, 2018 20:56:01)

Офлайн

#4 Сен. 23, 2018 20:54:52

SharkyEXE
Зарегистрирован: 2017-12-10
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

BM21

Здравствуйте.

Я Вас очень прошу, на примере Вашего кода тынц , для сообщения ntpdate problem: Internet connection ok? Time server ok? , напишите, код, пожалуйста

Повторюсь - сделать так, чтобы при код-завершения: 256 - появляется сообщение ntpdate problem: Internet connection ok? Time server ok? , а вот окно тынц не появляется

Отредактировано SharkyEXE (Сен. 23, 2018 21:25:47)

Офлайн

#5 Сен. 23, 2018 21:29:02

BM21
Зарегистрирован: 2018-09-15
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

 def NTP_set(self):
    #if (config.plugins.SetClock.NTPName01.value == "" and config.plugins.SetClock.NTPName02.value == "" and config.plugins.SetClock.NTPName03.value == "" and config.plugins.SetClock.NTPName04.value == "" and config.plugins.SetClock.NTPName05.value == "" and config.plugins.SetClock.NTPName06.value == "" and config.plugins.SetClock.NTPName07.value == "" and config.plugins.SetClock.NTPName08.value == "" and config.plugins.SetClock.NTPName09.value == ""):
    #self.session.open(MessageBox, _("no timeserver configured!"), MessageBox.TYPE_INFO)
    #else:
    log_file = open('/usr/lib/enigma2/python/Plugins/Extensions/SetClock/log.txt', 'a')
    def execute_cmd(cmd):
        log_file.write("Начинаю выполнять команду: %s" % cmd)
        fo = popen(cmd)
        output = fo.read()
        exit_code = fo.close()
        log_file.write("Результат выполнения команды: %s; вывод: `%s`; код-завершения: %i" % (cmd, output, 0 if exit_code is None else exit_code))
        return output
    if os.path.exists(os.path.join(plugin_path, "ntpdate")):
        log_file.write("Программа существует по указанному пути")
        #Lite_OutPut_In_Console_1_stroke
        #cmd = '/usr/bin/ntpdate -b -t %s %s && echo "\n"' % (config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName.value)
        #cmd = '%s%s %s %s && echo "\n"' % (plugin_path, "/ntpdate -b -t ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value)
        #cmd = '%s%s %s %s %s %s %s %s %s %s %s %s && echo "\n"' % (plugin_path, "/ntpdate -b -t ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value, config.plugins.SetClock.NTPName02.value, config.plugins.SetClock.NTPName03.value, config.plugins.SetClock.NTPName04.value, config.plugins.SetClock.NTPName05.value, config.plugins.SetClock.NTPName06.value, config.plugins.SetClock.NTPName07.value, config.plugins.SetClock.NTPName08.value, config.plugins.SetClock.NTPName09.value)
        #Extended_OutPut_In_Console_2_stroke
        #cmd = '/usr/bin/ntpdate -v -u %s %s && echo "\n"' % (config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName.value)
        cmd = '%s%s %s %s && echo "\n"' % (plugin_path, "/ntpdate -v -u ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value)
        #cmd = '%s%s %s %s %s %s %s %s %s %s %s %s && echo "\n"' % (plugin_path, "/ntpdate -v -u ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value, config.plugins.SetClock.NTPName02.value, config.plugins.SetClock.NTPName03.value, config.plugins.SetClock.NTPName04.value, config.plugins.SetClock.NTPName05.value, config.plugins.SetClock.NTPName06.value, config.plugins.SetClock.NTPName07.value, config.plugins.SetClock.NTPName08.value, config.plugins.SetClock.NTPName09.value)
        pipe = popen(cmd)
        res = pipe.read()
        exit_code = pipe.close()
        if exit_code == 256:
            self.session.open(MessageBox, _("ntpdate problem: Internet connection ok? Time server ok?"), MessageBox.TYPE_INFO)
        elif res == "":
            cmd = "ls -l %s%s" % (plugin_path, "/ntpdate")
            res = execute_cmd(cmd)
            
            if res[3]!="x":
                cmd = "chmod 755 %s%s" % (plugin_path, "/ntpdate")
                res = execute_cmd(cmd)
                self.session.open(MessageBox, _("ntpdate problem: attributes for 'ntpdate' have not been correct! Fixed now! Try again!\n%s" % res), MessageBox.TYPE_INFO)
            else:
                self.session.open(MessageBox, _("ntpdate problem: Internet connection ok? Time server ok?"), MessageBox.TYPE_INFO)
       else:
            self.session.open(MyConsole, _("Системное время с NTP ..."), [cmd])
            self.close()
            self.close()
    else:
        log_file.write("Программа не существует по указанному пути")
        self.session.open(MessageBox, _("'ntpdate' не установлен !"), MessageBox.TYPE_ERROR)
    log_file.close()

Офлайн

#6 Сен. 23, 2018 22:00:01

SharkyEXE
Зарегистрирован: 2017-12-10
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

BM21

Здравствуйте.

При различных тестах - неправильный сервер ntp99.vniiftri.ru и/или физически выдернул шнур = нет интернета - все отлично, выдается сообщение ntpdate problem: Internet connection ok? Time server ok? + НЕ показывается окно тынц

Огромное Вам спаисбо.

PS. Какие строки закомментировать, чтобы не создавался, не писался файл log.txt?

Спасибо.

Офлайн

#7 Сен. 23, 2018 22:01:45

BM21
Зарегистрирован: 2018-09-15
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

Все где есть log_file, строка и

+ НЕ показывается окно тынц
тут незнаю что почему.

Офлайн

#8 Сен. 23, 2018 22:03:32

SharkyEXE
Зарегистрирован: 2017-12-10
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Разобраться в констукции

BM21

Здравствуйте.

В общем, что я хотел, все работает, спасибо.

Пожалуйста, я Вас чоень проошу:
1) сделайте комментарии в Вашем коде тынц , чтобы не создавался, не писался файл log.txt
2) сделайте комментарии в Вашем коде тынц - может чего-то не особо нужное можно закомментировать и будет работать

Отредактировано SharkyEXE (Сен. 23, 2018 22:09:27)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version