草庐IT

bash脚本杀死港口

目前,我正在学习SSH创建和聆听服务器。但是我仍然倾向于经常做错事,之后我的端口仍然开放。因此,我正在写一个bash脚本来杀死它,但是我有一个无法解决的错误。剧本:#!/bin/bashpid=$(lsof-i:22-t);set-f;a=(${pid})forein${a[@]}doecho$ekill$e||kill-9$edone行为@echo$e外壳给出了正确的pid但是当我做一个lsoif-i:22-t当脚本运行时pid仍然开放。我想念什么?看答案由于您愿意与-9标志请更换:kill$e||kill-9$e和kill-9$e如前所述Nixcraft逻辑或command1||comma

python - 当父进程死亡时,如何杀死使用 subprocess.check_output() 创建的 python 子进程?

我在linux机器上运行一个python脚本,它使用subprocess.check_output()创建一个子进程,如下所示:subprocess.check_output(["ls","-l"],stderr=subprocess.STDOUT)问题是即使父进程死了,子进程仍在运行。当父进程死亡时,有什么方法可以杀死子进程? 最佳答案 是的,您可以通过两种方法实现这一点。它们都要求您使用Popen而不是check_output。第一种是比较简单的方法,使用try..finally,如下:fromcontextlibimportc

python - 当父进程死亡时,如何杀死使用 subprocess.check_output() 创建的 python 子进程?

我在linux机器上运行一个python脚本,它使用subprocess.check_output()创建一个子进程,如下所示:subprocess.check_output(["ls","-l"],stderr=subprocess.STDOUT)问题是即使父进程死了,子进程仍在运行。当父进程死亡时,有什么方法可以杀死子进程? 最佳答案 是的,您可以通过两种方法实现这一点。它们都要求您使用Popen而不是check_output。第一种是比较简单的方法,使用try..finally,如下:fromcontextlibimportc

python - 在 Python 2.5 中,我如何杀死一个子进程?

我正在使用Python中的subprocess包来运行一个子进程,稍后我需要将其杀死。但是,子进程包的文档指出terminate()函数仅在2.6中可用我们使用2.5运行Linux,出于向后兼容性的原因,我无法升级到2.6,有什么替代方案?我猜这些函数是一些方便的方法。 最佳答案 你在进程pid上调用os.kill。os.kill(process.pid,signal.SIGKILL)您没问题,因为您使用的是Linux。Windows用户不走运。 关于python-在Python2.5中

python - 在 Python 2.5 中,我如何杀死一个子进程?

我正在使用Python中的subprocess包来运行一个子进程,稍后我需要将其杀死。但是,子进程包的文档指出terminate()函数仅在2.6中可用我们使用2.5运行Linux,出于向后兼容性的原因,我无法升级到2.6,有什么替代方案?我猜这些函数是一些方便的方法。 最佳答案 你在进程pid上调用os.kill。os.kill(process.pid,signal.SIGKILL)您没问题,因为您使用的是Linux。Windows用户不走运。 关于python-在Python2.5中

python - 一旦 Futures 开始,你如何杀死它们?

我正在使用新的concurrent.futures模块(也有一个Python2backport)来做一些简单的多线程I/O。我无法理解如何彻底终止使用此模块开始的任务。查看以下Python2/3脚本,它重现了我看到的行为:#!/usr/bin/envpythonfrom__future__importprint_functionimportconcurrent.futuresimporttimedefcontrol_c_this():withconcurrent.futures.ThreadPoolExecutor(max_workers=5)asexecutor:future1=ex

python - 一旦 Futures 开始,你如何杀死它们?

我正在使用新的concurrent.futures模块(也有一个Python2backport)来做一些简单的多线程I/O。我无法理解如何彻底终止使用此模块开始的任务。查看以下Python2/3脚本,它重现了我看到的行为:#!/usr/bin/envpythonfrom__future__importprint_functionimportconcurrent.futuresimporttimedefcontrol_c_this():withconcurrent.futures.ThreadPoolExecutor(max_workers=5)asexecutor:future1=ex

python - 从python运行程序,并在脚本被杀死后继续运行

我试过这样运行:subprocess.Popen(['nohup','my_command'],stdout=open('/dev/null','w'),stderr=open('logfile.log','a'))如果父脚本正常退出,这会起作用,但如果我终止脚本(Ctrl-C),我的所有子进程也会被终止。有没有办法避免这种情况?我关心的平台是OSX和Linux,使用Python2.6和Python2.7。 最佳答案 子进程收到与父进程相同的SIGINT,因为它在同一个进程组中。您可以通过在子进程中调用os.setpgrp()将子进

python - 从python运行程序,并在脚本被杀死后继续运行

我试过这样运行:subprocess.Popen(['nohup','my_command'],stdout=open('/dev/null','w'),stderr=open('logfile.log','a'))如果父脚本正常退出,这会起作用,但如果我终止脚本(Ctrl-C),我的所有子进程也会被终止。有没有办法避免这种情况?我关心的平台是OSX和Linux,使用Python2.6和Python2.7。 最佳答案 子进程收到与父进程相同的SIGINT,因为它在同一个进程组中。您可以通过在子进程中调用os.setpgrp()将子进

python - 杀死使用 Python 的 subprocess.Popen() 创建的进程

这个问题在这里已经有了答案:Howtoterminateapythonsubprocesslaunchedwithshell=True(11个回答)关闭7年前。这是我的想法:首先,我使用subprocess.Popen创建了一个进程其次,经过一段时间后,我尝试通过Popen.kill()杀死它importsubprocessimportos,signalimporttimeproc1=subprocess.Popen("kvm-hda/path/xp.img",shell=True)time.sleep(2.0)print'proc1=',proc1.pidsubprocess.Pop