Операция Python God: дистанционное включение и выключение
Вы, наверное, слышали или практиковали завершение работы с Python, так как насчет загрузки с Python? Это волшебный метод, который учит вас, как использовать Python для загрузки.
Цель этой статьи
- Принцип удаленной загрузки
- Реализация кода удаленной загрузки Python
- Инструкция по отключению Python
Больше Python видео, исходный код, данные плюс группа 960410445 бесплатно
Python boot
Как использовать программу для загрузки? Это технология WOL Wake-On-Lan. Когда компьютер выключен или находится в спящем режиме, сетевая карта и часть материнской платы по-прежнему имеют слабый источник питания. Конечно, источник питания должен быть подключен и подключен. Таким образом, даже в случае выключения сетевая карта по-прежнему обладает определенной способностью работать, вы можете прослушивать информацию онлайн-трансляции за пределами компьютера, и когда информация определенного формата будет найдена, она запустится.
Автозапуск программ на python
Теперь материнские платы в основном поддерживаются. Нужно только настроить следующие два параметра в свойствах сетевого адаптера
Следующее изображение не может быть проверено. Мы должны убедиться, что сетевая карта по-прежнему имеет электропитание после выключения. Если вы выключите индикатор сетевого порта, он не будет работать. Держите индикатор сетевого порта включенным.
Эти конкретные данные также имеют хорошее название, называемое Magic Packet (Волшебный пакет). Обычно используется протокол UDP для трансляции. Обычно это порт 7 или 9. Волшебные пакеты всегда используют «FF FF FF FF FF FF» для 6 «FF», за которыми следует информация MAC-адреса. Как только сетевая карта обнаружит содержимое пакета, она разбудит целевой компьютер.
Код выглядит следующим образом, сам код очень короткий, а принцип очень прост:
Выключение Python
Отключение относительно проще, и в Интернете есть много готовых решений. Большинство программ используют программу для сканирования почтовых ящиков. Если вы получаете электронные письма, связанные с ключевыми словами завершения работы, программа автоматически выполняет команду завершения работы.
Кроме того, если вы просто выключились в локальной сети или у вас есть общедоступный IP-адрес, вы также можете запустить службу на локальном компьютере, например Flask, работающую на порту 5000. Просто отправьте инструкцию на адрес 5000. Команда для выполнения выключения требуется в родной программе
Источник: russianblogs.com
Как закрыть или завершить процесс, зависшую программу или вирус в командной строке
Python Multiprocessing изящное завершение работы в правильном порядке
Сначала останавливается процесс worker(), затем данные процесса result_queue() промываются и останавливаются.
16 июня 2021 Обновленный 17 июня 2021
Для нового проекта мне понадобился процесс deamon, который должен выполнять множество более или менее одинаковых операций на различных ресурсах. В данном случае операция связана с IO, и я решил эту проблему с помощью ThreadPoolExecutor. Пока все хорошо.
Далее я хотел хранить результаты в файлах. Конечно, мы используем очередь для связи между процессами. Процесс worker() использует q.put() для добавления элементов в очередь, а процесс result_queue() использует q.get() для получения элементов из очереди.
Мой процесс result_queue() также буферизирует полученные результаты. Как только достигается порог, все результаты сразу записываются в файл.
И вот в чем проблема. Когда вы нажимаете CTRL-C или посылаете сигнал SIGTERM , то процессы резко завершаются. Это означает:
- Ресурсы, к которым обращался worker() , могут быть оставлены в плохом состоянии.
- result_queue() может содержать много результатов, которые не будут сохранены.
Нехорошо! Ниже я покажу, как я решил эту проблему. Как всегда, я использую Ubuntu (20.04).
Использование событий для остановки дочерних процессов
Страницы в интернете о Python и Multiprocessing часто сбивают с толку, в основном потому, что многие ссылаются на Python2. Хорошо то, что вы вынуждены читать официальную документацию .
Существует два способа, с помощью которых процессы могут взаимодействовать (надежно) друг с другом:
В данном случае, чтобы остановить процессы, мы используем события. Мы называем наши события stop-events, потому что они требуют остановки дочернего процесса. Это работает следующим образом:
- Создайте событие (объект)
- Передайте событие в качестве параметра при запуске дочернего процесса.
- В дочернем процессе: проверьте событие и остановитесь, если событие ‘is_set()’
- В главном процессе: ‘set()’ событие, если дочерний процесс должен быть остановлен.
Замените обработчики для SIGINT / SIGTERM
Вот трюк, который заставляет все работать:
Когда вы порождаете дочерний процесс, этот процесс также наследует обработчики сигналов от родительского.
Python Keyboardinterrupt
Программирование и разработка
На чтение 5 мин Просмотров 4.7к. Опубликовано 18.03.2022
Поскольку мы очень хорошо знаем, что такое исключения и как ими управлять в Python, мы можем перейти к следующему разделу. С точки зрения непрофессионала, исключения — это все, что нарушает нормальный ход программы. Точно так же KeyboardInterrupt — это исключение Python, которое генерируется, когда пользователь или программист прерывает обычное выполнение программы.
Во время выполнения программы интерпретатор Python регулярно проверяет наличие прерываний. Когда пользователь или программист по ошибке или намеренно нажимает клавишу ctrl-c или del в Python, интерпретатор выдает исключение KeyboardInterrupt.
Исключение KeyboardInterrupt наследует BaseException и, как и другие исключения Python, обрабатывается с помощью оператора try-except, чтобы предотвратить внезапный выход интерпретатора из программы.
Исключение KeyboardInterrupt и как оно работает?
KeyboardInterrupt Исключение — это стандартное исключение, которое выдается для управления ошибками клавиатуры. В Python нет специального синтаксиса для исключения KeyboardInterrupt; это обрабатывается в обычном блоке try и exclude. Код, который потенциально вызывает проблему, записывается внутри блока try, а ключевое слово «raise» используется для возбуждения исключения или интерпретатор Python вызывает его автоматически.
Один из самых неприятных аспектов работы с Python заключается в том, что он завершает работу программы, когда пользователь нажимает ctrl-c, намеренно или непреднамеренно, что является серьезной проблемой при работе с большими объемами данных, например при извлечении записей из базы данных. обработка, выполнение большой программы, выполняющей несколько задач одновременно, и так далее.
Это исключение ведет себя так же, как и другие исключения Python. Единственная разница с этим исключением состоит в том, что его создал пользователь и что компьютер не принимал в нем участия. Обратитесь к следующим разделам, чтобы узнать больше об этой концепции.
Пример 1
Когда дело доходит до управления исключениями в Python, используется оператор try…except. Оператор try…except имеет особый синтаксис, разделенный на три части, каждая из которых имеет свое назначение и функцию в коде Python.
Блок try содержит набор кода, который интерпретатор должен проверить на наличие ошибок. Блок exclude добавляет необходимые исключения, чтобы избежать ошибок кода. Последний блок включает в себя предложения, которые должны быть выполнены без проверки, но игнорируются блоками try и exclude.