本文目錄一覽:
- 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下的處理方式是不一樣的。
原創文章,作者:NCXW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145390.html