本文目录一览:
- 1、如何使用Supervisor监控python进程
- 2、如何使用Supervisor监控和管理python进程
- 3、python怎么看程序是否在运行
- 4、7种检测Python程序运行时间、CPU和内存占用的方法
- 5、python 如何监测进程是否关闭?
如何使用Supervisor监控python进程
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口,在该命令行中可执行start、stop、status、reload等操作。
需求:Redis-server这个进程是运行redis的服务。我们要求这个服务能在意外停止后自动重启。
安装(Centos):
yum install Python-setuptools
easy_install supervisor
测试是否安装成功:
echo_supervisord_conf
如何使用Supervisor监控和管理python进程
?本文实例讲述了Python使用Supervisor来管理进程的方法。分享给大家供大家参考。具体分析如下: Supervisor可以启动、停止、重启*nix系统中的程序。也可以重启崩溃的程序。 supervisord的一个守护进程,用于将指定的进程当做子进程来运行。 supe...
python怎么看程序是否在运行
你说的文件有没有运行,指的是什么意思?是说一个应用程序有没有被运行?还是一个文件读取到尾巴了?
如果是前者,那么你再使用os.popen,可以拿到运行应用程序的剧本,然后你可以查看这个运行程序的状态,是否在运行是否结束。
如果是看文件,有没有读到底那你就直接for循环到底他就自动没有数据了
7种检测Python程序运行时间、CPU和内存占用的方法
1. 使用装饰器来衡量函数执行时间
有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:
import time
from functoolsimport wraps
import random
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0= time.time()
result= function(*args, **kwargs)
t1= time.time()
print("Total time running %s: %s seconds" %
(function.__name__, str(t1- t0))
)
return result
return function_timer
@fn_timer
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
输出:Total time running random_sort: 0.6598007678985596 seconds
使用方式的话,就是在要监控的函数定义上面加上 @fn_timer 就行了
或者
# 可监控程序运行时间
import time
import random
def clock(func):
def wrapper(*args, **kwargs):
start_time= time.time()
result= func(*args, **kwargs)
end_time= time.time()
print("共耗时: %s秒" % round(end_time- start_time, 5))
return result
return wrapper
@clock
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
输出结果:共耗时: 0.65634秒
2. 使用timeit模块
另一种方法是使用timeit模块,用来计算平均时间消耗。
执行下面的脚本可以运行该模块。
这里的timing_functions是Python脚本文件名称。
在输出的末尾,可以看到以下结果:4 loops, best of 5: 2.08 sec per loop
这表示测试了4次,平均每次测试重复5次,最好的测试结果是2.08秒。
如果不指定测试或重复次数,默认值为10次测试,每次重复5次。
3. 使用Unix系统中的time命令
然而,装饰器和timeit都是基于Python的。在外部环境测试Python时,unix time实用工具就非常有用。
运行time实用工具:
输出结果为:
Total time running random_sort: 1.3931210041 seconds
real 1.49
user 1.40
sys 0.08
第一行来自预定义的装饰器,其他三行为:
real表示的是执行脚本的总时间
user表示的是执行脚本消耗的CPU时间。
sys表示的是执行内核函数消耗的时间。
注意:根据维基百科的定义,内核是一个计算机程序,用来管理软件的输入输出,并将其翻译成CPU和其他计算机中的电子设备能够执行的数据处理指令。
因此,Real执行时间和User+Sys执行时间的差就是消耗在输入/输出和系统执行其他任务时消耗的时间。
4. 使用cProfile模块
5. 使用line_profiler模块
6. 使用memory_profiler模块
7. 使用guppy包
python 如何监测进程是否关闭?
如果被监测程序是你自己编写的,那你可以在程序进程结束的时候主动去通知监测进程。
如果不是,而你要监测它的运行情况,那么这和操作系统有关。Windows和Linux下的处理方式是不一样的。