Команда остановки программы python

При разработке программного обеспечения * отладка * — это процесс поиска и устранения проблем, которые мешают правильной работе программного обеспечения.

Отладчик Python предоставляет среду отладки для программ Python. Он поддерживает установку условных точек останова, пошаговое выполнение исходного кода по одной строке за раз, проверку стека и многое другое.

Интерактивная работа с отладчиком Python

Отладчик Python входит в состав стандартного дистрибутива Python в виде модуля + pdb + . Отладчик также является расширяемым и определяется как класс + Pdb + . Чтобы узнать больше, вы можете прочитать ofrial документацию + pdb + .

Как вручную остановить скрипт Python, который работает непрерывно в linux

У меня есть скрипт Python, который работает и постоянно сбрасывает ошибки в файл журнала.

Я хочу, чтобы отредактировать скрипт и запустить его снова, но не знаю, как остановить скрипт.

Я в настоящее время вошел в Linux через PuTTy и делаю все кодирование там. Итак, есть ли команда для остановки скрипта python в linux?

Ctypes Python – Огромная скорость и БЕЗОПАСНОСТЬ компонентов

задан wonea

Количество просмотров материала

26.02.2023 4:18 2704

Распечатать страницу

6 ответов

вам нужно будет найти идентификатор процесса (pid). одна команда, чтобы сделать это будет

$> ps -ef

чтобы ограничить результаты процессов python вы можете grep результат

$> ps -ef | grep python

который даст результаты, такие как:

user 2430 1 0 Jul03 ? 00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd

второй столбец-pid. затем используйте команду kill как таковую:

$> kill -9 2430 (i.e. the pid returned)

отвечен olly_uk 2023-02-27 12:06

найти идентификатор процесса (PID) сценария и выдать kill -9 PID чтобы убить процесс, если он не работает как ваш процесс forground на терминале, и в этом случае вы можете Contrl-C, чтобы убить его.

найдите PID с помощью следующей команды:

ps -elf | grep python

список процессов Python, выбрать один правильный и отметить его PID. Тогда

kill -9

убить процесс. Вы можете получить сообщение о завершении процесса на этом этап.

в качестве альтернативы, вы можете использовать top команда для поиска процесса python. Просто введите k (для убийства) и top программа предложит вам для PID процесса, чтобы убить. Иногда трудно увидеть все процессы, которые вас интересуют top так как они могут прокручивать экран, я думаю, что ps подход проще / лучше.

отвечен Levon 2023-02-27 14:23

Если программа является текущим процессом в вашей оболочке, ввод Ctrl-C остановит программу Python.

Управление клавиатурой python | Модуль keyboard python

отвечен Ned Batchelder 2023-02-27 16:40

попробуйте эту простую строку, она завершит все script.py :

Читайте также:
Программа на Андроид которая говорит кто звонит

pkill -9 -f script.py

отвечен trex 2023-02-27 18:57

в идеальном мире вы бы прочитали документацию к скрипту и увидели, какой сигнал(ы) следует использовать, чтобы сообщить ему о завершении. В реальной жизни вы, вероятно, захотите отправить ему сигнал термина, во-первых, возможно, используя сигнал убийства, если он игнорирует термин. Итак, что вы делаете, это найти идентификатор процесса, используя команду ps (как кто-то уже описал). Тогда, вы можете запустить kill -TERM . Некоторые программы будут убирать вещи, например, файлы, которые они могут открыть, когда они получают такой сигнал, поэтому лучше начать с чем-то подобным. Если это не удастся, то не так много осталось сделать, кроме большого молотка: kill -KILL . (вы можете использовать числовые значения, например-KILL = -9, и они, вероятно, никогда не изменятся, но в теоретическом смысле может быть безопаснее использовать имена)

отвечен jrl 2023-02-27 21:14

Если вы знаете имя скрипта, вы можете свести всю работу к одной команде:

ps -ef | grep «script_name» | awk » | xargs sudo kill

Если вы хотите убедиться, что это скрипт python:

ps -ef | grep «python script_name» | awk » | xargs sudo kill

Если вы хотите, чтобы убить все скрипты python:

ps -ef | grep «python» | awk » | xargs sudo kill

Я полагаю, вы поняли;)

напоминание: вы должны процитировать «» имя сценария, как в примерах.

отвечен Jesus 2023-02-27 23:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Опубликовать ответ

Похожие вопросы про тегам:

  • переменная среды ifs не наследуется
  • Как обновить CRL автоматически?
  • linux-наушники и динамик работают только после выхода из спящего режима
  • Отладчик Python не останавливается на точках останова
  • Не удалось обновить с 16.10 до 17.04, теперь APT выдает ошибки
  • Какой кадр 802.11 должен использоваться для идентификации клиентов Точки доступа [scapy]
  • Как я могу запустить приложение с аргументами командной строки в Mac OS
  • Скрипт для получения изображений в папке с размерами a.txt файл
  • Как создать оболочку сценария для отправки cmd через telnet и регистрировать только результаты?

Недавние вопросы

  • 7 Какое максимальное количество разделов можно создать на жестком диске?
  • 3 Таблица прилипает к верхней части страницы, как ее удалить?
  • 6 При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
  • 4 Как превратить оглавление в простой форматированный текст?
  • 5 Что значит 1Rx8 и 2Rx8 для оперативной памяти и совместимы ли они?
  • 10 Копирование и вставка в Windows PowerShell
  • 13 Сочетание клавиш для сворачивания удаленного рабочего стола
  • 1 Как включить фон рабочего стола на удаленном компьютере?
  • 5 Как сделать ярлык на рабочем столе доступным для всех пользователей в Windows 10
  • 1 Зачем Windows 10 нужна служба очереди сообщений и почему она установлена по умолчанию?
Читайте также:
Какую антивирусную программу лучше установить на Андроид смартфон

Недавние публикации

  • Наушники Wireless и True Wireless: чем они отличаются?
  • Не включается iPad: причины и решения проблемы
  • Как ускорить передачу данных по Bluetooth
  • Как правильно приобрести подержанный iPhone?
  • Каковы преимущества фотоэлектрической системы?
  • 5 лучших USB–пылесосов для клавиатуры
  • Как выбрать чехол-аккумулятор для смартфона
  • Мобильный телефон Razr: новая складная раскладушка от Motorola стоит 1200 евро
  • Компания Nothing: смартфон Phone 2 должен быть «более премиальным» и выйти в этом году
  • UMTS — История технологии сотовой связи
  • Выбор домена
  • 3D-печать: будущее массового производства
  • Искусственный интеллект в малом бизнесе: как улучшить эффективность и конкурентоспособность
  • Ошибки, которых стоит избегать при продвижении сайта
  • Высокие технологии в Windows: что это такое и как их использовать в своих приложениях
  • Осознанные воспоминания – технология «живых» фото
  • Оцинкованный крепеж: особенности стандартов ГОСТ и преимущества использования в строительстве

Акции IT-компаний [14.06]

Apple $173,24 +0,81%
Amazon $114,49 -1,94%
Microsoft $325,19 +3,61%
Google $123,44 +2,11%
Netflix $364,74 -0,03%
Intel $27,45 -5,34%
Facebook $254,49 +2,11%
Tesla $185,54 +1,44%
Tencent $322,40 -3,01%

Цитата дня

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем.

  • Какое максимальное количество разделов можно создать на жестком диске?
  • Таблица прилипает к верхней части страницы, как ее удалить?
  • При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
  • Как превратить оглавление в простой форматированный текст?

Источник: kompsekret.ru

Создайте обработчики выхода для вашего приложения Python

Прочитав эту статью, вы узнаете, как определить свои собственные обработчики выхода, которые будут выполняться при выходе из приложения Python. На основании официальной документации:

«Модуль atexit определяет функции для регистрации и отмены регистрации функций очистки. Зарегистрированные таким образом функции автоматически выполняются при нормальном завершении работы интерпретатора. atexit выполняет эти функции в обратном порядке, в котором они были зарегистрированы; если вы зарегистрируете A , B и C , во время завершения работы интерпретатора они будут выполняться в порядке C , B , A ».

Этот модуль чрезвычайно полезен, если вы ищете способ очистить ресурсы и корректно закрыть ненужные соединения после выхода из приложения. Однако имейте в виду, что зарегистрированные функции не будут вызываться в следующих случаях:

  • Когда программа прерывается сигналом, который не обрабатывается Python.
  • При обнаружении фатальной внутренней ошибки Python.
  • Когда вызывается os._exit() .

Перейдем к следующему разделу и начнем писать код Python.

Реализация

Модуль atexit является частью встроенного модуля Python и не требует дополнительной установки. Если вы используете Python версии 3.7 или более позднюю версию, зарегистрированные функции являются локальными для интерпретатора, в котором они были зарегистрированы, при использовании с субинтерпретаторами C-API.

Простой пример

Добавьте следующее объявление импорта в свой файл Python:

import atexit

Определите свою собственную функцию, которая будет вызываться при выходе из приложения. Я собираюсь использовать простой оператор print в качестве демонстрации. Это будет та часть, где вы вводите код для очистки ресурсов и закрытия всех существующих подключений к базе данных:

Читайте также:
Программа для вышивальной машины brother

def OnExitApp(): print(«Exit Python application»)

Следующим шагом будет регистрация вашей функции:

atexit.register(OnExitApp)

Запустите свой файл Python, и функция будет выполнена, когда ваше приложение завершится. Если вы зарегистрировали одну и ту же функцию дважды, она будет выполнена дважды.

Зарегистрированные функции можно отменить с помощью следующего кода:

atexit.unregister(OnExitApp)

Если функция не была зарегистрирована, она ничего не сделает. unregister удалит все зарегистрированные функции с тем же именем, даже если вы регистрировали его несколько раз раньше.

Для функций с параметрами в качестве входных вы можете зарегистрировать их следующими способами:

def OnExitApp(user): print(user, » exit Python application») atexit.register(OnExitApp, ‘Ng Wai Foong’) #method 1 atexit.register(OnExitApp, user=’Ng Wai Foong’) #method 2

Полный код выглядит следующим образом:

Пример фляги

Давайте попробуем еще один пример, который работает в приложении Flask. Добавьте следующую декларацию импорта:

from flask import Flask import atexit

Определите пользовательские функции и зарегистрируйте их в модуле atexit :

def OnExitApp(user): print(user, » exit Flask application») atexit.register(OnExitApp, user=’Ng Wai Foong’)

Настройте приложение Flask и запустите его при запуске:

app = Flask(__name__) if __name__ == «__main__»: app.run(‘0.0.0.0’,port=5000)

После выхода из приложения Flask вы должны увидеть следующий вывод:

Ознакомьтесь со следующей сутью полного кода:

Пример Flask + APScheduler

В этом примере мы рассмотрим, как запустить планировщик внутри Flask и выключить его при выходе из приложения Flask. Вы можете использовать этот пример в качестве базовой ссылки для очистки ресурсов в вашем проекте и закрытия соединений с базой данных. Я буду использовать модуль Python под названием apscheduler . Раньше я писал учебник по этому модулю. Не стесняйтесь проверить это.

Установите модуль с помощью следующей команды:

pip install apscheduler

Добавьте следующую декларацию импорта:

from flask import Flask from apscheduler.schedulers.background import BackgroundScheduler import atexit

Создайте настраиваемую функцию, которая будет запускаться планировщиком:

def sensor(): print(‘Sensor action’)

Создайте BackgroundScheduler и настройте его запускать раз в секунду. По умолчанию он устанавливает deamon в True . В результате вам нужно как следует очистить его при выходе:

sched = BackgroundScheduler() sched.add_job(sensor,’cron’,second=’*’) sched.start()

Определите пользовательскую функцию, которая будет выполняться при выходе, и зарегистрируйте ее в модуле atexit . Мы будем вызывать функцию shutdown планировщика для очистки ресурсов:

def OnExitApp(user): sched.shutdown() print(user, » exit Flask application for») atexit.register(OnExitApp, user=’Ng Wai Foong’)

Создайте приложение Flask и запустите его при запуске:

app = Flask(__name__) if __name__ == «__main__»: app.run(‘0.0.0.0’,port=5000)

Когда вы закроете приложение Flask, вы должны увидеть в консоли следующий вывод:

Вы можете найти полный код в следующем:

Подведем итоги тому, что мы узнали сегодня.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru