Форум сайта python.su
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)
Офлайн
SharkyEXEНу вот значит надо просто код завершения программы в нужном месте проверять. а не еее вывод.
et 0.02
fo = popen(cmd) output = fo.read() # Можно это не писать exit_code = fo.close() # Вот тут exit_code будет код возврата если он None то все ок иначе интернет и.т.д.
Отредактировано BM21 (Сен. 23, 2018 20:24:09)
Офлайн
BM21
Здравствуйте.
Если вкратце - как сделать так, чтобы при код-завершения: 256 - появляется сообщение ntpdate problem: Internet connection ok? Time server ok? , а вот окно self.session.open(MyConsole, _(“Системное время с NTP …”), ) не появляется
Отредактировано SharkyEXE (Сен. 23, 2018 20:56:01)
Офлайн
BM21
Здравствуйте.
Я Вас очень прошу, на примере Вашего кода тынц , для сообщения ntpdate problem: Internet connection ok? Time server ok? , напишите, код, пожалуйста
Повторюсь - сделать так, чтобы при код-завершения: 256 - появляется сообщение ntpdate problem: Internet connection ok? Time server ok? , а вот окно тынц не появляется
Отредактировано SharkyEXE (Сен. 23, 2018 21:25:47)
Офлайн
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()
Офлайн
BM21
Здравствуйте.
При различных тестах - неправильный сервер ntp99.vniiftri.ru и/или физически выдернул шнур = нет интернета - все отлично, выдается сообщение ntpdate problem: Internet connection ok? Time server ok? + НЕ показывается окно тынц
Огромное Вам спаисбо.
PS. Какие строки закомментировать, чтобы не создавался, не писался файл log.txt?
Спасибо.
Офлайн
Все где есть log_file, строка и
+ НЕ показывается окно тынцтут незнаю что почему.
Офлайн
BM21
Здравствуйте.
В общем, что я хотел, все работает, спасибо.
Пожалуйста, я Вас чоень проошу:
1) сделайте комментарии в Вашем коде тынц , чтобы не создавался, не писался файл log.txt
2) сделайте комментарии в Вашем коде тынц - может чего-то не особо нужное можно закомментировать и будет работать
Отредактировано SharkyEXE (Сен. 23, 2018 22:09:27)
Офлайн