Остановить программу в консоли

Есть много случаев, когда мы хотим выйти из программы до того, как это сделает интерпретатор, и для этой цели у нас есть python exit function. Помимо exit у нас также есть некоторые функции, такие как quit (), sys.exit() и os._exit(). Давайте узнаем о каждом из их достоинств и недостатков.

Во время простого выполнения программы (без использования упомянутых выше функций), когда интерпретатор достигает конца программы/скрипта, он выходит из программы. Но когда мы используем такие функции, как выход и выход, он выходит автоматически в это время.

Работа с функциями выхода Python

Иногда нам нужно, чтобы программа остановилась до того, как интерпретатор достигнет конца сценария, например, если мы сталкиваемся с чем-то, что не требуется. Итак, давайте разберемся, какие функции можно использовать ниже 4 способами –

  1. Python Exit()
  2. quit()
  3. Функция Sys.exit ()
  4. os._exit Функция

1. Выход Python()

Эта функция может быть реализована только тогда, когда site.py модуль есть (он поставляется с предустановленным Python), и именно поэтому его не следует использовать в производственной среде. Он должен использоваться только с переводчиком.

Как закрыть или завершить процесс, зависшую программу или вирус в командной строке

В фоновом режиме функция выхода python использует исключение SystemExit. Это означает, что когда интерпретатор сталкивается с exit (), он выдает исключение SystemExit. Кроме того, он не печатает трассировку стека, что означает, почему произошла ошибка.

Если мы выполним print(exit) –

Ниже приведен код выхода из программы, если мы сталкиваемся с избирателем в возрасте до 18 лет.

Если мы запустим программу на python, то на выходе получим-

2. Python exit с помощью quit()

Предположим, мы хотим выйти из программы, когда встречаем имя в списке меток-

3. Функция Sys.exit() в Python

Эта функция полезна и может быть использована в реальном мире или производственной среде, потому что это функция модуля sys, доступного везде. Мы должны использовать эту функцию для управления терминалом, у которого есть большие файлы.

4. Функция os._exit В Python

Разница между выходом(0) и выходом(1)

Основное различие между exit(0) и exit(1) заключается в том, что exit(0) представляет успех при любых ошибках, а exit(1) представляет неудачу.

Должен Читать:

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python

Вывод

Функция exit является полезной функцией, когда мы хотим выйти из нашей программы без интерпретатора, достигающего конца программы. Некоторые из используемых функций-это python exit function, quit(), sys.exit(), os._exit(). Мы должны использовать эти функции в соответствии с нашими потребностями.

Попробуйте запустить программы на вашей стороне и дайте мне знать, если у вас есть какие-либо вопросы.

Крутые команды консоли windows которые вы должны знать

Есть программа, которая должна работать до какого-то момента, если не остановить, то бесконечно. Хочу как-нибудь «красиво» останавливать программу, но не знаю как.

  • Вопрос задан более года назад
  • 7073 просмотра

kshnkvn

5e2f3a824d426913983223.jpg

Jairman

kshnkvn

Jairman, какой вопрос — такой и ответ.
В идеале — скрипт не нужно завершать, у него должно быть логическое завершение. Если есть необходимость останавливать скрипт вручную, то нужно смотреть на сам скрипт, потому что вариантов, как остановить выполнение — куча. Как вариант — обрабатывать исключение KeyboardInterrupt и по нажатию ctrl + c внутри самого скрипта останавливать процессы.

Ivan Yakushenko, вы слишком усложняете) для того что бы иметь статус — Куратор тега Python
вы все правильно говорите, что программа должна логический конец иметь, но судя по вопросу требуется именно тупое прерывание программы в тот момент где захочет ее создатель) программным методом, без пальцев)

kshnkvn

artem_sib, ничего я не усложняю. Для реализации точки выхода из приложения, которая гарантирует завершение всех процессов, нужно смотреть на реализацию самого приложения. А под

должна работать до какого-то момента, если не остановить

я не вижу ничего иного, как ручная остановка приложения. Самый простой способ я и написал в ответе.

Я написал программу в IDLE для токенизации текстовых файлов, и она начала токенизировать 349 текстовых файлов! Как я могу это остановить? Как я могу остановить работающую программу на Python?

Читайте также:
Не выполняется программа в паскале

Чтобы остановить вашу программу, просто нажмите Control + C .

Вы также можете сделать это, если используете в своем коде функцию exit() . В идеале вы можете сделать sys.exit() . sys.exit() может завершить работу Python, даже если вы запускаете вещи параллельно через multiprocessing пакет.

Ctrl-Break он более мощный, чем Ctrl-C

  • Чтобы остановить скрипт Python, просто нажмите Ctrl + C .
  • Внутри скрипта с exit() вы можете сделать это.
  • Вы можете сделать это в интерактивном скрипте, просто выйдя.
  • Вы можете использовать pkill -f name-of-the-python-script .

Чтобы остановить работающую программу: используйте CTRL + C, чтобы завершить процесс.

Чтобы обработать это программно в python: импортируйте модуль sys и используйте sys.exit там, где вы хотите прекратить программу.

Если ваша программа работает на интерактивной консоли, нажатие CTRL + C вызовет KeyboardInterrupt исключение в главном потоке.

Если ваша программа на Python ее не перехватит, KeyboardInterrupt приведет к выходу Python. Однако, блок except KeyboardInterrupt: или что-то наподобие except: , будет препятствовать тому, чтобы этот механизм фактически останавливал выполнение сценария.

Однако эти механизмы в основном работают, только если интерпретатор Python работает и отвечает на события операционной системы. Если интерпретатор Python по какой-либо причине не отвечает, наиболее эффективным способом является завершение всего процесса операционной системы, на котором выполняется интерпретатор. Механизм этого зависит от операционной системы.

В среде оболочки в стиле Unix вы можете нажать CTRL + Z , чтобы приостановить любой процесс, который в данный момент контролирует консоль. После того, как вы вернете приглашение оболочки, вы можете использовать jobs , чтобы вывести список приостановленных заданий, и вы можете убить первое приостановленное задание с помощью kill %1 . (Если вы хотите запустить его снова, вы можете продолжить работу на переднем плане, используя fg %1 ; прочитайте руководство вашей оболочки по управлению заданиями для получения дополнительной информации.)

Кроме того, в Unix или Unix-подобной среде вы можете найти PID (идентификатор процесса) процесса Python и уничтожить его с помощью PID. Используйте что-то вроде ps aux | grep python , чтобы найти запущенные процессы Python, а затем используйте kill для отправки сигнала SIGTERM .

Как сделать раннее завершение программы в Python? В самоучителе я нашёл несколько примеров:

Однако там не было объяснения какой метод лучше. Какой метод является наиболее «безаварийным»?

И заодно: есть ли в Python понятие Autocloseable объектов? Если я сделаю ранее завершение программы, нужно ли мне будет закрывать файлы и т.д.?

1,267 2 2 золотых знака 16 16 серебряных знаков 30 30 бронзовых знаков Спасибо! Лучшим решением является использование sys.exit() на счет второго: лучше закрывать/завершать все операции перед завершением программы

Короткий ответ:
Лучше использовать sys.exit()

Механизм завершения процесса в Python реализован через бросание исключения SystemExit , таким образом можно просто создать подобное исключение и программа завершится:

Функция exit и аналогичная ей quit созданы для удобства работы в интерактивном режиме и их не рекомендуется использовать внутри скриптов:

They are useful for the interactive interpreter shell and should not be used in programs.

По факту они также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:

Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.

Есть также дополнительный метод для немедленного завершения программы: os._exit . У него довольно специфическая область применения, и там же есть замечание:

The standard way to exit is sys.exit(n)

Т.е. здесь даётся подтверждение того, что стандартный способ завершения программы — это вызов sys.exit .

Функция os.abort , упомянутая вами, использует механизм сигналов процессу. Конкретно при вызове этой функции будет передан сигнал SIGABRT , что в linux приведёт к завершению программы и созданию дампа памяти процесса. Подобное завершение рассматривается операционной системой как аварийное, поэтому не стоит использовать его для безаварийного завершения приложения.

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

Этот код откроет файл, напечатает его содержимое на экран и закроет файл автоматически, даже если возникнет исключение при его печати.

Для классов, которые не приспособлены для работы с with есть функция closing в библиотеке contextlib . Из документации:

Code like this:

is equivalent to this:

Вот небольшой пример работы этой функции:

Теперь небольшое отступление о том, почему стоит использовать конструкцию with .

Известно, что программа завершится от любого необработанного исключения, а не только от SystemExit . Таким образом, если в вашем коде используются какие-то ресурсы, которые требуется правильным образом закрывать перед завершением работы, нужно оборачивать работу с ними в блоки try . finally . .

Читайте также:
Как посмотреть куда ломится программа по сети

Однако, при использовании конструкции with это оборачивание происходит автоматически, и все ресурсы закрываются корректно.

Так как выход из программы — это всего лишь брошенное исключение, то и в случае использования функции sys.exit закрытие открытых в операторе with ресурсов произойдёт корректно:

Вы можете писать также и свои классы, предоставляющие ресурсы или классы, оборачивающие другие, которые нужно уметь закрывать автоматически. Для этого используются методы __enter__ и __exit__ .

I wrote a program in IDLE to tokenize text files and it starts to tokeniza 349 text files! How can I stop it? How can I stop a running Python program?

1,655 4 4 gold badges 13 13 silver badges 10 10 bronze badges Many answers here are platform-specific. Search for your platform (Windows, Linux, Mac, something else?)

17 Answers 17

You can also do it if you use the exit() function in your code. More ideally, you can do sys.exit() . sys.exit() which might terminate Python even if you are running things in parallel through the multiprocessing package.

Note: In order to use the sys.exit() , you must import it: import sys

9,538 9 9 gold badges 42 42 silver badges 69 69 bronze badges

To stop your program, just press Control + C .

If your program is running at an interactive console, pressing CTRL + C will raise a KeyboardInterrupt exception on the main thread.

If your Python program doesn’t catch it, the KeyboardInterrupt will cause Python to exit. However, an except KeyboardInterrupt: block, or something like a bare except: , will prevent this mechanism from actually stopping the script from running.

Sometimes if KeyboardInterrupt is not working you can send a SIGBREAK signal instead; on Windows, CTRL + Pause/Break may be handled by the interpreter without generating a catchable KeyboardInterrupt exception.

However, these mechanisms mainly only work if the Python interpreter is running and responding to operating system events. If the Python interpreter is not responding for some reason, the most effective way is to terminate the entire operating system process that is running the interpreter. The mechanism for this varies by operating system.

In a Unix-style shell environment, you can press CTRL + Z to suspend whatever process is currently controlling the console. Once you get the shell prompt back, you can use jobs to list suspended jobs, and you can kill the first suspended job with kill %1 . (If you want to start it running again, you can continue the job in the foreground by using fg %1 ; read your shell’s manual on job control for more information.)

Alternatively, in a Unix or Unix-like environment, you can find the Python process’s PID (process identifier) and kill it by PID. Use something like ps aux | grep python to find which Python processes are running, and then use kill to send a SIGTERM signal.

The kill command on Unix sends SIGTERM by default, and a Python program can install a signal handler for SIGTERM using the signal module. In theory, any signal handler for SIGTERM should shut down the process gracefully. But sometimes if the process is stuck (for example, blocked in an uninterruptable IO sleep state), a SIGTERM signal has no effect because the process can’t even wake up to handle it.

To forcibly kill a process that isn’t responding to signals, you need to send the SIGKILL signal, sometimes referred to as kill -9 because 9 is the numeric value of the SIGKILL constant. From the command line, you can use kill -KILL (or kill -9 for short) to send a SIGKILL and stop the process running immediately.

  • Edge ppmx что это
  • Где находится файл настроек maven
  • Что такое pci e в aida64
  • Как транслировать экран компьютера на телевизор через dlna
  • Видеокамера с управлением по блютузу

Источник: kompyutery-programmy.ru

Остановить программу в консоли

Запуск и остановка задач в Консоли администрирования Kaspersky Security Center

В Kaspersky Security Center вы можете запускать или останавливать задачу в любой момент независимо от выбранного режима запуска задачи.

Чтобы запустить или остановить задачу в Консоли администрирования:

  1. Откройте Консоль администрирования Kaspersky Security Center.
  2. Выполните одно из следующих действий:
    • Если вы хотите запустить или остановить выполнение задачи, созданной для SVM или виртуальных машин, входящих в выбранную группу администрирования, в дереве консоли выберите папку с названием этой группы администрирования, в рабочей области выберите закладку Задачи .
    • Если вы хотите запустить или остановить выполнение задачи, созданной для одной или нескольких SVM или виртуальных машин (задачи для набора устройств), в дереве консоли выберите папку Задачи .
    • В списке задач выберите нужную задачу, откройте контекстное меню задачи и выберите действие, которое вы хотите выполнить.
    Читайте также:
    Что значит родовая программа

    Для задачи Поиск вирусов кроме запуска и остановки доступны действия Приостановить и Возобновить . На виртуальных машинах с компонентом Легкий агент для Windows также доступна автоматическая приостановка выполнения задачи в указанное время.

    Запуск и остановка задач в локальном интерфейсе Легкого агента для Windows

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

    Запуск и остановка задачи Поиск вирусов выполняется через Kaspersky Security Center.

    Чтобы запустить или остановить задачу в локальном интерфейсе:

    1. На защищенной виртуальной машине откройте главное окно программы.
    2. Выберите закладку Центр управления .
    3. Раскройте блок Управление задачами . Если в блоке отсутствуют какие-то задачи, это означает, что отображение локальных задач и управление ими запрещены политикой для всех защищенных виртуальных машин группы администрирования. Вы можете включить и выключить отображение локальных задач и управление ими в политике Легкого агента для Windows (подраздел Дополнительные параметры в разделе Другие параметры ).
    4. Выберите задачу, которую вы хотите запустить или остановить, откройте контекстное меню задачи и выберите нужное действие. Если вы запустили задачу, статус выполнения задачи, отображающийся справа от названия задачи, изменится на Выполняется . Если вы остановили задачу, статус выполнения задачи изменится на Остановлено .

    Вы можете настроить автоматическую приостановку выполнения задачи в указанное время.

    Вы также можете запускать выборочную проверку любого файла, выбрав пункт Проверить на вирусы в контекстном меню Windows.

    Источник: support.kaspersky.com

    unixforum.org

    Ctrl+Z или Ctrl+C ничего не даёт. Печатается Z или C и всё на этом, продолжается вывод даты. Спасибо, кто откликнется.

    Спасибо сказали:
    Bizdelnick Модератор Сообщения: 20381 Статус: nulla salus bello ОС: Debian GNU/Linux

    Re: Как прервать операцию в консоли?

    Сообщение Bizdelnick » 18.02.2016 00:03

    Ctrl+C должно работать.
    Что за шелл? ls -l «$SHELL»
    Пишите правильно:

    в консоли
    вку́пе (с чем-либо)
    в общем
    вообще
    в течение (часа)
    новичок
    нюанс
    по умолчанию
    приемлемо
    проблема
    пробовать
    трафик

    Спасибо сказали:
    монах Тук Сообщения: 78 ОС: XP 32 SP3

    Re: Как прервать операцию в консоли?

    Сообщение монах Тук » 18.02.2016 00:08

    18.02.2016 00:03
    Ctrl+C должно работать.
    Что за шелл? ls -l «$SHELL»

    ls -l «$SHELL» -rwxr-xr-x 1 root root 921460 авг 16 2013 /bin/bash*
    Спасибо сказали:

    serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:

    Re: Как прервать операцию в консоли?

    Сообщение serzh-z » 18.02.2016 00:26

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

    Спасибо сказали:
    SLEDopit Модератор Сообщения: 4814 Статус: фанат консоли (= ОС: GNU/Debian, RHEL

    Re: Как прервать операцию в консоли?

    Сообщение SLEDopit » 18.02.2016 00:43

    18.02.2016 00:03
    Что за шелл? ls -l «$SHELL»

    $SHELL должен содержать информацию о предпочтительном логин шелле (тому, что в /etc/passwd прописан).
    По стечению обстоятельств, чаще всего оно совпадает с текущим шеллом сессии, но не стоит на это полагаться.

    SHELL This variable shall represent a pathname of the user’s preferred command language interpreter. If this interpreter does not conform to the Shell Command Language in XCU Shell Command Language, utilities may behave differently from those described in POSIX.1-2008. // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08
    Спасибо сказали:
    Bizdelnick Модератор Сообщения: 20381 Статус: nulla salus bello ОС: Debian GNU/Linux

    Re: Как прервать операцию в консоли?

    Сообщение Bizdelnick » 18.02.2016 01:45

    А какой версии баш? /bin/bash —version

    18.02.2016 00:26

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

    А что там может отличаться? Он или передаёт сочетание клавиш шеллу, или нет.

    монах Тук
    Я правильно понимаю, что Ctrl+C прерывает sleep, но не цикл? То есть в Вашем примере при нажатии сразу же печатается дата?

    Пишите правильно:

    в консоли
    вку́пе (с чем-либо)
    в общем
    вообще
    в течение (часа)
    новичок
    нюанс
    по умолчанию
    приемлемо
    проблема
    пробовать
    трафик

    Источник: unixforum.org

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