pythonkill
A. python中如何中止一个线程
简单来说,它kill的原理是设置一个flag位,然后线程在执行下一句python语句检测到这个位被设置了之后,就会自行退出,以达到kill的目的。 另外还有一种更容易理解的flag置位的实现方式:classKillableThread(threading.Thread):def__init__(self):threading.Thread. __init__(self)self.stop = Falsedefrun(self):whilenotself.stop:somefunction() 这种方式相比第一种而言,又有一点不足:kill生效的时限,最大等于somefunction执行一遍所花的时间。 而第一种方式,在下一句python语句执行时就会生效。 不过可以料想,第一种实现方式,整体的执行效率会慢一点。
B. python哪个函数启动进程和关闭进程
任何一种编程语言,启动进程和关闭进程都是跟操作系统相关的操作,python中与操作系统打交道的话,推荐使用os模块。
os.system() 函数可以启动一个进程,执行完之后返回状态码。
os.fork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个函数的时候,建议你学习一下linux编程的知识。
os.popen 以管道的方式创建进程。
os.spawnl 也可以创建进程,并能指定环境变量。
os.kill(pid, sig) 关闭一个进程,pid是进程号,sig是信号。与fork配合使用,例如你刚才用fork创建了一个子进程,它的pid是11990, 那么调用
os.kill( 11990, signal.CTRL_BREAK_EVENT)
就以ctrl+c的方式杀死了这个进程。
另外还有一个模块multiprocessing,这个模块封装了很多创建进程和进程间通信的操作,可以让你发挥多核的威力。
C. python实现了多线程,如果使用了命令kill把正在运行的进程kill掉的话,可能某些线程会出错,怎么解决
主线程捕获kill的信号以后去终止其他线程, 等其他线程完成以后, 再在主线程中退出.不过更现代的实现并发的方法是使用异步, 而不是多线程.python实现了多线程,如果使用了命令kill把正在运行的进程kill掉的话,可能某些线程会出错,怎么解决?
D. 退出python环境应该输入什么
我们这里使用的是python3.6版本,我们先确认python版本及python正常工作。如下面图中所示,python版本是3.6.5,可以正常登陆。
E. python在服务器运行被kill
已经很清楚了。估计服务器运营商 限制了脚本运行时间。比如几分钟什么的。
解决办法。只有把运行任务再分割。分段执行。一次运行一部分。记住状态和结果,下次运行从上次状态恢复结果,继续下一个步骤
F. python 如何kill掉suricata进程
使用sudo pkill suricata
G. python内部线程假死,有什么办法在进程内kill掉这个假死的线程
如果是爬虫的话,这个一般都是由于网络原因造成的卡住,可以做两层控制:
在HTTP请求上设置好超时时间,最好设定sockect的超时,这样更底层一些。
在上层做一个检测机制,定时轮询线程是否正常,如果遇到不响应的直接kill掉。
H. python问题 我想保护一个进程让psutil库中的kill方法不能kill这个进程,求解答
kill通常是通过发送信号结束进程的,对psutil不太熟悉,你可以看看他的源码看看发送的是什么信号,然后你在python里对那些信号做处理就好了
I. python 怎么杀死指定线程名的线程
这几天在实践的时候,有一个问题一直在困扰我,比如timer,定时器,Python没有这么好的机制,需要自己实现。这个网上也是有一些。但是我自己的需求可能并不一样。
需求:
我需要一个函数工作,比如远程连接一个端口,远程读取文件等,但是我给的时间有限,比如,4秒钟如果你还没有读取完成或者连接成功,我就不等了,很可能对方已经宕机或者拒绝了。这样可以批量做一些事情而不需要一直等,浪费时间。
定时器是最好的,我觉得这个需求,一旦定时过了,就将这个读取函数直接kill。但是这出现了问题。
第一,怎么定时?
第二,时间到了,怎么kill函数
第三,定时函数和kill函数怎么判断该kill了。
写一个多线程,一个线程专门用来计时间,一个用来执行函数,一旦时间到了,就杀死执行函数的线程。我在多线程,python很弱,似乎没有这样的比较简单的一个接口就调用的。不像windows编程。那么,该怎办?
结合我的需求,我这么做:
1、在主进程执行,调用一个进程执行函数,然后主进程sleep,等时间到了,就kill 执行函数的进程。
测试一个例子:
[python] view plain
import time
import threading
def p(i):
print i
class task(threading.Thread):
def __init__(self,fun,i):
threading.Thread.__init__(self)
self.fun = fun
self.i = i
self.thread_stop = False
def run(self):
while not self.thread_stop:
self.fun(self.i)
def stop(self):
self.thread_stop = True
def test():
thread1 = task(p,2)
thread1.start()
time.sleep(4)
thread1.stop()