精华内容
下载资源
问答
  • python杀死进程

    2021-07-19 16:00:24
    I need to make a script that gets from the user the following:1) Process name (on linux).2) The log file name that this process write to it.It needs to kill the process and verify that the process i.....

    I need to make a script that gets from the user the following:

    1) Process name (on linux).

    2) The log file name that this process write to it.

    It needs to kill the process and verify that the process is down.

    Change the log file name to a new file name with the time and date.

    And then run the process again, verify that it's up in order it will continue to write to the log file.

    Thanks in advance for the help.

    解决方案

    You can retrieve the process id (PID) given it name using pgrep command like this:

    import subprocess

    import signal

    import os

    from datetime import datetime as dt

    process_name = sys.argv[1]

    log_file_name = sys.argv[2]

    proc = subprocess.Popen(["pgrep", process_name], stdout=subprocess.PIPE)

    # Kill process.

    for pid in proc.stdout:

    os.kill(int(pid), signal.SIGTERM)

    # Check if the process that we killed is alive.

    try:

    os.kill(int(pid), 0)

    raise Exception("""wasn't able to kill the process

    HINT:use signal.SIGKILL or signal.SIGABORT""")

    except OSError as ex:

    continue

    # Save old logging file and create a new one.

    os.system("cp {0} '{0}-dup-{1}'".format(log_file_name, dt.now()))

    # Empty the logging file.

    with open(log_file_name, "w") as f:

    pass

    # Run the process again.

    os.sytsem("")

    # you can use os.exec* if you want to replace this process with the new one which i think is much better in this case.

    # the os.system() or os.exec* call will failed if something go wrong like this you can check if the process is runninh again.

    Hope this can help

    展开全文
  • Python杀死进程操作

    千次阅读 2020-11-12 16:23:21
    Python利用os模块杀死程序进程 代码 # encoding:utf-8 import os # 使用Python的os.system运行CMD命令乱码解决 os.system('chcp 65001') # see: https://www.cnblogs.com/jieliu8080/p/10656544.html # 获取进程...

    Python利用os模块杀死程序进程

    代码

    # encoding:utf-8
    
    import os
    
    # 使用Python的os.system运行CMD命令乱码解决
    os.system('chcp 65001')
    
    # see: https://www.cnblogs.com/jieliu8080/p/10656544.html
    # 获取进程信息
    print(os.popen('tasklist /FI "IMAGENAME eq YoudaoDict.exe"').read())
    
    # 判断进程
    print("YoudaoDict" in os.popen('tasklist /FI "IMAGENAME eq YoudaoDict.exe"').read())
    
    # 杀死进程
    print(os.system('TASKKILL /F /IM YoudaoDict.exe'))
    
    print("YoudaoDict" in os.popen('tasklist /FI "IMAGENAME eq YoudaoDict.exe"').read())
    
    

    结果

    Active code page: 65001
    
    Image Name                     PID Session Name        Session#    Mem Usage
    ========================= ======== ================ =========== ============
    YoudaoDict.exe               16440 Console                   16     38,432 K
    
    True
    SUCCESS: The process "YoudaoDict.exe" with PID 16440 has been terminated.
    0
    False
    

    注:python 版本号

    C:\>python -V
    Python 3.8.1
    
    展开全文
  • 有时候我们需要中断程序的执行,比如执行如下代码失败时。 import tensorflow as tf tf.enable_eager_execution() 这时我们可以杀掉进程... 您可能感兴趣的文章:python 判断linux进程,并杀死进程的实现方法python
  • 今天小编就为大家分享一篇python 判断linux进程,并杀死进程的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇python 根据pid杀死相应进程的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 我试图避免像这样终止进程:import subprocesscommand = "pkill python"process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)但是相反,我试图杀死一个特定的进程,而不是所有的python进程。...

    我试图避免像这样终止进程:

    import subprocess

    command = "pkill python"

    process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)

    但是相反,我试图杀死一个特定的进程,而不是所有的python进程。假设process命令称为“ python test.py”,我想杀死该命令,而其他python进程保持完整。不知道我该怎么做。

    平台是Linux / Ubuntu

    澄清一下,这就是我执行ps -aux |时要完成的工作。grep“ python”我看到了:

    sshum 12115 68.6 2.7 142036 13604 pts/0 R 11:11 0:13 python test.py &

    sshum 12128 0.0 0.1 11744 904 pts/0 S+ 11:12 0:00 grep --color=auto test.py

    我想杀死进程12115,但是我不确定如何在不杀死所有其他python进程的情况下进行此操作。

    编辑:这是我想出的解决方案,但它看起来并不特别优雅...

    command = "ps aux"

    process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)

    output = process.communicate()[0].split("\n")

    try:

    for p in output:

    if "python test.py" in p:

    l = p.split(" ")

    l = [x for x in l if x!='']

    pid = int(l[1])

    os.kill(pid, 9)

    except:

    pass

    解决方案

    pgrep(-f)中有一个标志,它允许在整个命令行中搜索进程,而不仅仅是名称。

    ps aux|grep python尝试重现结果时在我的机器上的输出:

    shadowk+ 1194 2.4 0.5 354240 70748 ? S 11:29 0:46 /usr/bin/python /usr/share/chronoslnx/main.py

    shadowk+ 1239 0.1 0.6 508548 84080 ? Sl 11:29 0:03 /usr/bin/python2 /usr/share/kupfer/kupfer.py

    shadowk+ 1245 0.0 0.4 296732 60956 ? S 11:29 0:00 /usr/bin/python2 -O /usr/share/wicd/gtk/wicd-client.py --tray

    shadowk+ 2279 99.7 0.0 22800 7372 pts/3 R+ 12:00 0:30 /usr/bin/python ./test.py

    shadowk+ 2289 0.0 0.0 10952 2332 pts/0 S+ 12:01 0:00 grep --color=auto python

    就我而言,以下任何命令都将获取正在运行的./test py文件的PID:

    pgrep -f 'python ./test.py'

    pgrep -f 'test.py'

    第二个代码更接近您要寻找的代码,因此调整后的代码如下所示(对于Python 2.x,您只需要从e.output中删除.decode()调用,并删除获取PID的调用):

    import subprocess

    import os

    try:

    needed_pid=subprocess.check_output(['pgrep','-f','test.py']).decode()

    except subprocess.CalledProcessError as e:

    print("pgrep failed because ({}):".format(e.returncode) , e.output.decode())

    else:

    try:

    os.kill(int(needed_pid), 9)

    print("We killed test.py!")

    except ProcessLookupError as e:

    print("We tried to kill an old entry.")

    except ValueError as e:

    print("Well, there's no test.py...so...yeah.")

    如果您想直接调用pkill进行相同的操作,也可以像这样更简单地执行此操作:

    import subprocess

    subprocess.call(['pkill', '-f', 'test.py'])

    展开全文
  • 目标是将配置文件重新加载到内存中,所以我想杀死所有子进程并创建其他进程,后者将读取新的配置文件. 编辑:添加了更多代码来解释我正在运行一段时间的True循环 编辑:这是@dano suggestion之后的新代码 def get_...

    是否

    import multiprocessing

    import schedule

    def worker():

    #do some stuff

    def sched(argv):

    schedule.every(0.01).minutes.do(worker)

    while True:

    schedule.run_pending()

    processs = []

    ..

    ..

    p = multiprocessing.Process(target=sched,args)

    ..

    ..

    processs.append(p)

    for p in processs:

    p.terminate()

    优雅地杀死一系列进程?

    如果不是最简单的方法是什么?

    目标是将配置文件重新加载到内存中,所以我想杀死所有子进程并创建其他进程,后者将读取新的配置文件.

    编辑:添加了更多代码来解释我正在运行一段时间的True循环

    编辑:这是@dano suggestion之后的新代码

    def get_config(self):

    from ConfigParser import SafeConfigParser

    ..

    return argv

    def sched(self, args, event):

    #schedule instruction:

    schedule.every(0.01).minutes.do(self.worker,args)

    while not event.is_set():

    schedule.run_pending()

    def dispatch_processs(self, conf):

    processs = []

    event = multiprocessing.Event()

    for conf in self.get_config():

    process = multiprocessing.Process(target=self.sched,args=( i for i in conf), kwargs={'event' : event})

    processs.append((process, event)

    return processs

    def start_process(self, process):

    process.start()

    def gracefull_process(self, process):

    process.join()

    def main(self):

    while True:

    processs = self.dispatch_processs(self.get_config())

    print ("%s processes running " % len(processs) )

    for process, event in processs:

    self.start_process(process)

    time.sleep(1)

    event.set()

    self.gracefull_process(process)

    关于代码的好处是,我可以编辑配置文件,并且进程也将重新加载其配置.

    问题是只有第一个进程运行而其他进程被忽略.

    编辑:这节省了我的生命,使用while而schedule()不是一个好主意,所以我设置了refresh_time

    def sched(self, args, event):

    schedule.every(0.01).minutes.do(self.worker,args)

    for i in range(refresh_time):

    schedule.run_pending()

    time.sleep(1)

    def start_processs(self, processs):

    for p,event in processs:

    if not p.is_alive():

    p.start()

    time.sleep(1)

    event.set()

    self.gracefull_processs(processs)

    def gracefull_processs(self, processs):

    for p,event in processs:

    p.join()

    processs = self.dispatch_processs(self.get_config())

    self.start_processs(processs)

    def main(self):

    while True:

    processs = self.dispatch_processs(self.get_config())

    self.start_processs(processs)

    break

    print ("Reloading function main")

    self.main()

    解决方法:

    如果您不介意只有在工作人员完成所有工作后才中止,那么添加一个multiprocessing.Event以便正常处理退出非常简单:

    import multiprocessing

    import schedule

    def worker():

    #do some stuff

    def sched(argv, event=None):

    schedule.every(0.01).minutes.do(worker)

    while not event.is_set(): # Run until we're told to shut down.

    schedule.run_pending()

    processes = []

    ..

    ..

    event = multiprocessing.Event()

    p = multiprocessing.Process(target=sched,args, kwargs={'event' : event})

    ..

    ..

    processes.append((p, event))

    # Tell all processes to shut down

    for _, event in processes:

    event.set()

    # Now actually wait for them to shut down

    for p, _ in processes:

    p.join()

    标签:python,linux,multiprocessing,python-multiprocessing

    展开全文
  • python - 按名称杀死进程?我正试图杀死一个进程(特别是iChat)。 在命令行中,我使用以下命令:ps -A | grep iChat然后:kill -9 PID但是,我不确定如何将这些命令转换为Python。Aaron asked 2019-04-24T18:21:04Z14...
  • 之前写了个python脚本...用firefox替换phantomjs无改善因为这个脚本不会长期使用,因此采取临时办法,新开一个子线程固定周期杀死phantomjs进程,这样selenium就会在block最多不超过此周期后返回。当然在爬虫脚本中...
  • python 杀死指定进程

    千次阅读 2020-07-07 12:27:42
    import os import psutil pids = psutil.pids() for pid in pids: p = psutil.Process(pid) # print('pid-%s,pname-%s' % (pid, p.name())) if p.name() == 'dllhost.exe': cmd = 'taskkill /F /IM python.exe' os....
  • 写在之前:先来明确以下几点:1、subprocess.Popen:这...即 父进程: 组长进程组长进程组长进程标识: 其进程组ID==其父进程ID组长进程可以创建一个进程组,创建该进程组中的进程,然后终止只要进程组中有一个进程存...
  • 如何使用python找到进程杀死进程,或者是确认某进程有没有在运行,这些功能的使用场景是很多的。比如你的服务器上有一个服务脚本server.py需要运行某个程序去做某些操作,但是在脚本运行这个程序好半天没返回,...
  • Python杀死windows进程

    千次阅读 2019-03-13 15:31:00
    import os import pandas as pd """ TCP 192.168.1.155:63758 129.211.126.69:4730 ESTABLISHED 12884 TCP 192.168.1.155:63973 129.211.126.69:4730 ESTABLISHED 3568 """ ...
  • Python杀死Windows进程

    2021-09-28 11:17:53
    ①批量杀死同一个进程: cmd = 'taskkill /F /IM ' + 进程名称 os.system(cmd) ②通过PID杀死某一个进程: cmd = 'taskkill /f /pid ' + PID值 os.system(cmd) ①查询所有PID: list_process = list() pid_list =...
  • 我正在运行Python3的一些进程,但是它们没有被终止。这是一个问题的MCVE,它运行在Linux 16.04和python3.5上。我用QJoypad和Sublime3试过这个。在import subprocessimport timep_joypad = subprocess.Popen(['...
  • Python获取进程id、杀死指定id进程

    千次阅读 2020-12-02 16:07:05
    获取当前进程id 返回字符串类型的pid os.getpid() 杀死指定进程 os.system('taskkill /f /pid %s' % '此处填入字符串型进程id')
  • 检测 "sogou-gui.exe" 的进程可用tasklist命令tasklist /FI "IMAGENAME eq sogou-gui.exe"FI:过滤器 IMAGENAME:映像名称 eq:有效操作符掉"sogou-gui.exe"进程可用taskkill命令taskkill /F /IM sogou-gui.exe/F...
  • python3 代码根据进程名字杀死进程

    千次阅读 2019-06-12 21:51:15
    import os os.system('pkill -f "进程名字"')
  • Python如何杀死进程

    2020-12-03 12:10:14
    我正在尝试启动一个具有root权限的进程,稍后再终止它。在但由于某些原因,我不能让它工作。在下面是一个小脚本来重现我的问题(免责声明:代码有点脏,它只用于bug再现):import osimport timeimport ...
  • 在我对用python实例化新进程完全陌生;这是我第一次真正尝试这样做。所以基本上,我有一个相关的功能:def get_report(id):path = report_path(id)if not path:raise NameErrorpage = get_page(path, ...
  • Linux 中跑了多个 Python 进程 需要全部杀死 os.popen() 调用 read() 方法有返回值 os.system() 运行 Linux 命令没有返回值,直接运行 # -*- coding:utf-8 -*- import os import re print('------') # os....
  • python 判断linux进程,并杀死进程

    千次阅读 2018-05-22 09:49:07
    pid = get_process_id("python socialbanklog.py") print pid if not pid: print "no target pid to kill,please check" sys.exit(1) result=os.system("kill -9 "+pid) if result==0: print "execute kill ...
  • 显示python进程,并杀死指定进程

    千次阅读 2019-04-25 15:14:30
    ps -ef | grep python 显示所有名字中有python进程 ps -ef | grep 'myProcessName' | grep -v grep | awk '{print $2}' | xargs -r kill -9 杀死名字含有myProcessName的所有进程 ...
  • python3 杀死进程

    2018-12-13 11:18:00
    在windows10杀死进程:***.exe  os.system('taskkill /f /im %s' % '***.exe') 转载于:https://www.cnblogs.com/shaosks/p/10112934.html
  • python-如何使用子进程modu杀死(或避免)僵尸进程当我使用子流程模块从另一个python脚本中启动一个python脚本时,当子流程“完成”时会创建一个僵尸进程。 除非杀死python进程,否则无法杀死该子进程。有没有办法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,611
精华内容 7,444
关键字:

python杀死进程

python 订阅
友情链接: C51 key.rar