如何手动停止在 linux 上连续运行的 Python 脚本

Gun*_*nar 25 linux script python

我有一个正在运行并不断将错误转储到日志文件中的 Python 脚本。

我想编辑脚本并再次运行它,但不知道如何停止脚本。

我目前通过 PuTTy 登录 Linux,并在那里完成所有编码。那么,有没有一个命令可以在linux中停止python脚本?

小智 42

您必须找到进程 ID (pid)。执行此操作的一个命令是

$> ps -ef
Run Code Online (Sandbox Code Playgroud)

将结果限制为 python 进程,您可以 grep 结果

$> ps -ef | grep python
Run Code Online (Sandbox Code Playgroud)

这将给出如下结果:

user      2430     1  0 Jul03 ?        00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd
Run Code Online (Sandbox Code Playgroud)

第二列是pid。然后使用 kill 命令:

$> kill -9 2430 (i.e. the pid returned)
Run Code Online (Sandbox Code Playgroud)


小智 14

试试这个简单的行,它将终止所有script.py

pkill -9 -f script.py
Run Code Online (Sandbox Code Playgroud)

  • 如果脚本名称是唯一的,这比手动搜索 PID 好得多。 (2认同)

Lev*_*von 7

找到脚本的进程 id (PID) 并发出 akill -9 PID来终止该进程,除非它在终端作为您的前台进程运行,在这种情况下,您可以使用 Contrl-C 来终止它。

使用以下命令查找 PID:

ps -elf | grep python
Run Code Online (Sandbox Code Playgroud)

它列出了所有的 python 进程,挑选出正确的进程并记下它的 PID。然后

kill -9 <whatever_the_PID_is>
Run Code Online (Sandbox Code Playgroud)

会杀死进程。在此阶段,您可能会收到有关已终止进程的消息。

或者,您可以使用该top命令查找 python 进程。只需输入k(杀死),top程序将提示您输入要杀死的进程的 PID。有时很难看到您感兴趣的所有进程,top因为它们可能会滚出屏幕,我认为这种ps方法更容易/更好。

  • 好吧,在使用 `-9` 之前,我会先“轻柔地”杀死它。只有当它没有反应时,我才会使用 `-9`。 (4认同)

Ned*_*der 5

如果该程序是 shell 中的当前进程,则键入 Ctrl-C 将停止 Python 程序。