【问题标题】:how to kill python program in linux using name of the program如何使用程序名称在linux中杀死python程序
【发布时间】:2020-08-07 16:50:19
【问题描述】:

当我使用ps -ef |grep 时,我得到了当前正在运行的程序 如果下面显示的是当前正在运行的程序。如何使用程序名称停止程序

user   8587  8577 30 12:06 pts/9    00:03:07 python3 program1.py

user   8588  8579 30 12:06 pts/9    00:03:08 python3 program2.py

例如。如果我想停止 program1.py 那么如何使用程序名称“program1.py”停止进程 .如果有任何关于用python杀死程序的建议会很棒

【问题讨论】:

  • 不是真正的 Python 问题...更多 unix/shell

标签: python linux


【解决方案1】:

使用psutil 相当简单

import psutil

proc = [p for p in psutil.process_iter() if 'program.py' in p.cmdline()]
proc[0].kill()

通过psutilCross-platform way to get PIDs by process name in python中的进程列表,从进程名称过滤器中找出进程

【讨论】:

  • 是的,我知道,但是。我想知道是否有办法使用程序名称终止进程
  • @sharath 用程序名称更新了答案;)
【解决方案2】:

尝试使用进程名称执行此操作:

pkill -f "Process name"

例如。如果你想杀死进程“program1.py”,输入:

pkill -f "program1.py"

如果有帮助请告诉我!

【讨论】:

  • 不,我也试过这个。 pkill python3 会杀死所有程序,但 pkill program1.py 不会杀死进程。
  • 当我寻找 pgrep -l python 我得到了所有进程,但 pgrep -l program1.py 没有给出输出。
【解决方案3】:

假设您安装了pkill 实用程序,您可以使用:

pkill program1.py

如果你不这样做,使用更常见的 Linux 命令:

kill $(ps -ef | grep program1.py | awk '{print $2}')

如果您坚持使用 Python,请参阅 How to terminate process from Python using pid?

【讨论】:

    【解决方案4】:

    grep 程序并结合添加管道在另一个命令中发送输出。
    1.见程序ps -ef.
    2.搜索程序grep program.
    3.删除你搜索的grep,因为它出现在搜索过程中grep -v grep
    4.用awkawk '{ print $2 }'分隔要杀死的进程 5.对之前输入的xarks kill -9应用cmd

    ps -ef  | grep progam | grep -v grep | awk '{ print $2 }' | xargs kill -9
    

    更多信息请看这里:
    关于pipeawkxargs

    使用 python 你可以使用 os:

    template = "ps -ef  | grep {program} | grep -v grep | awk '{{ print $2 }}' | xargs kill -9"
    import os
    os.system(template.format(program="work.py"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多