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

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

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

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

8
задан 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)
28
отвечен olly_uk 2023-02-27 12:06

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

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

ps -elf | grep python

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

kill -9 <whatever_the_PID_is>

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

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

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

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

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

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

pkill -9 -f script.py
3
отвечен trex 2023-02-27 18:57

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

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

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

ps -ef | grep "script_name" | awk '{print }' | xargs sudo kill

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

ps -ef | grep "python script_name" | awk '{print }' | xargs sudo kill

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

ps -ef | grep "python" | awk '{print }' | xargs sudo kill

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

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

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

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

Ваш ответ

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

Имя
Вверх