首先要安裝
pip install psutil
# psutil這個包是第三方包需要自己安裝
判斷CPU狀態
#!/usr/bin/python3
# 這次是監視單個進程所佔CPU的資源百分比,上一個版本是判斷整個樹莓派CPU佔
#用率,這個雖然能實現功能,但是存在風險,有些情況下不是我寫的腳本所引起的
#整個樹莓派CPU佔用率過高就,進行重啓程序。
import psutil as p
import os
import logging
logging.basicConfig(level=logging.DEBUG,
filename='thread_cpu_log1.0.log',
filemode='a',
format=
'%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
#filename='/home/pi/Desktop/thread_cpu_log1.0.log',是linux操作目錄你可以寫成當前目錄下
try:
pid1 = os.popen( 'ps -ef | grep threading_modbus_16_005.py | grep -v "grep"') #獲取整個進程的狀態,在第一個grep 後輸入的是你python腳本的名稱
pid2 = pid1.read()[11:14] # 字符串截取獲取當前進程的pid 也就是進程號
# 接下來通過進程號獲取 當前進程號 的狀態
pid_cpu = p.Process(int(pid2)).cpu_percent() #創建對象並獲取佔用CPU
if pid_cpu > 100:
logging.debug('重啓一次')
os.system('sudo reboot')
else:
logging.debug('正常')
except:
logging.debug("所查詢進程進程沒啓動")
# os模塊的使用
os.system() #python環境執行linux命令 返回值 只有 0,1,2
os.popen() #管道的作用是有返回值得同 執行linux命令後得到的返回值相同, #是字符串類型,獲取想要的變量需要切片