最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python監(jiān)控windows服務(wù)器的進(jìn)程和服務(wù)

 更新時(shí)間:2025年04月21日 11:10:58   作者:阿友不錯(cuò)哦  
這篇文章主要為大家詳細(xì)介紹了如何使用python監(jiān)控windows服務(wù)器的進(jìn)程和服務(wù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

需求:軟件公司提供的軟件服務(wù)在服務(wù)器上會(huì)莫名其妙的掛掉,他們采用的方法也只有重啟服務(wù)器,重啟時(shí)間太久了,所以想弄一個(gè)監(jiān)測(cè)進(jìn)程和服務(wù)的程序,監(jiān)測(cè)到掛了就重啟進(jìn)程或者服務(wù)

import psutil  
import time
import subprocess
import logging
import logging.handlers
import wmi
import ctypes
import os

# 獲取服務(wù)狀態(tài)
def get_service_status(service_names):
    wmiobj = wmi.WMI()
    for service_name in service_names:
        services = wmiobj.Win32_Service(Name = service_name)
        if services:
            # 服務(wù)狀態(tài)是停止就開啟服務(wù)
            if services[0].state == "Stopped":
                start_service(service_name)
            # return services[0].state
        else:
            logging.error(f"失?。悍?wù){(diào)service_name}不存在")

#判斷是否有管理員權(quán)限
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

# 啟動(dòng)服務(wù)
def start_service(service_name):
    if is_admin():
        try:
            cmd = 'NET START {}'.format(service_name)
            os.popen(cmd)
            logging.warning(f"成功:?jiǎn)?dòng)了服務(wù){(diào)service_name}")
        except Exception as e:
                logging.error(f"失敗:?jiǎn)?dòng)服務(wù){(diào)service_name}失敗, 錯(cuò)誤信息: {e}")
    else:
        logging.warning(f"不是admin權(quán)限")

# 日志配置
def loggingstars():
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)

    handler = logging.StreamHandler()
    logger.addHandler(handler)

    file_handler = logging.handlers.RotatingFileHandler(filename='process_name.log', maxBytes=1024*1024*90, backupCount=10)
    file_handler.setLevel(logging.WARNING)

    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)

    logger.addHandler(file_handler)


# 獲取掉線的進(jìn)程完整執(zhí)行路徑
def find_process_by_name(process_names): 
    all__process = set()
    """獲取所有進(jìn)程的完成路徑"""  
    for proc in psutil.process_iter(['pid', 'name','exe']):
        all__process.add(proc.info['exe']) 
    """ 找出掉線的監(jiān)控進(jìn)程的完整路徑 """
    new_list = [item for item in process_names if item not in all__process]
    return new_list


def start_process(process_names, service_anmes):
    while True:
        # 檢查服務(wù)是否啟動(dòng)
        get_service_status(service_anmes)
        time.sleep(60)

        stop_process = find_process_by_name(process_names)
        
        if not stop_process:
            continue
        """ 啟動(dòng)掉線的進(jìn)程 """
        for app in stop_process:
            try:
                subprocess.Popen(f"{app}")
                logging.warning(f"成功:?jiǎn)?dòng)了進(jìn)程{app}")
            except Exception as e:
                logging.error(f"失?。?jiǎn)?dòng)進(jìn)程{app}失敗, 錯(cuò)誤信息: {e}")
        # 如果需要啟動(dòng)進(jìn)程的話,暫停20分鐘
        time.sleep(20*60)
  
if __name__ == "__main__":

    loggingstars()

    logging.warning("============== 進(jìn)程監(jiān)控程序啟動(dòng) ============")

    # 需要監(jiān)測(cè)的進(jìn)程,為什么使用可執(zhí)行文件,是因?yàn)榘l(fā)現(xiàn)有進(jìn)程名會(huì)相同
    process_names = [
        "C:\\UserApp\\app\\baidu-translate-client\\百度翻譯.exe",
        "C:\\UserApp\\app\\dingding\\main\\current\\DingTalk.exe"
    ]

   # 需要監(jiān)測(cè)的服務(wù)名
    service_anmes = ["MySQL80", "JetBrainsEtwHost"]
    start_process(process_names, service_anmes)

其實(shí)服務(wù)也是啟動(dòng)執(zhí)行文件然后有一個(gè)進(jìn)程,如果找到所有服務(wù)的進(jìn)程直接寫進(jìn)程監(jiān)控就可以了,這里只是展示一下怎么監(jiān)控服務(wù)和進(jìn)程

有些服務(wù)或者進(jìn)程的啟動(dòng)可能有順序

  • 打開 運(yùn)行 輸入 “msinfo32”
  • 選擇 “軟件環(huán)境” 再點(diǎn)擊 "正在運(yùn)行任務(wù)"就可疑查看啟動(dòng)時(shí)間

打包就用 Pyinstaller -F xx.py,然后放到服務(wù)器上

到此這篇關(guān)于python監(jiān)控windows服務(wù)器的進(jìn)程和服務(wù)的文章就介紹到這了,更多相關(guān)python監(jiān)控服務(wù)器進(jìn)程和服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python+tkinter實(shí)現(xiàn)樹形圖繪制

    Python+tkinter實(shí)現(xiàn)樹形圖繪制

    Treeview是ttk中的樹形表組件,功能十分強(qiáng)大,非常適用于系統(tǒng)路徑的表達(dá),下面我們就來看看如何利用這一組件實(shí)現(xiàn)樹形圖的繪制吧,有需要的可以參考下
    2023-09-09
  • 如何利用python寫GUI及生成.exe可執(zhí)行文件

    如何利用python寫GUI及生成.exe可執(zhí)行文件

    工作中需要開發(fā)一個(gè)小工具,簡(jiǎn)單的UI界面可以很好的提高工具的實(shí)用性,由此開啟了我的第一次GUI開發(fā)之旅,這篇文章主要給大家介紹了關(guān)于如何利用python寫GUI及生成.exe可執(zhí)行文件的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • python之pyinstaller組件打包命令和異常解析實(shí)戰(zhàn)

    python之pyinstaller組件打包命令和異常解析實(shí)戰(zhàn)

    前段時(shí)間在制作小工具的時(shí)候,直接在命令行用pyinstaller工具打包成功后,啟動(dòng)exe可執(zhí)行文件的時(shí)候各種報(bào)錯(cuò), 今天,我們就分享一下踩坑經(jīng)過,需要的朋友可以參考下
    2021-09-09
  • Python實(shí)現(xiàn)順序查找的示例代碼

    Python實(shí)現(xiàn)順序查找的示例代碼

    順序查找(Sequential?Search)是一種簡(jiǎn)單直觀的搜索算法,用于在無序數(shù)組中查找特定元素,本文將介紹順序查找的基本原理,并通過Python代碼進(jìn)行詳細(xì)講解,需要的可以參考一下
    2023-08-08
  • python 密碼學(xué)示例——?jiǎng)P撒密碼的實(shí)現(xiàn)

    python 密碼學(xué)示例——?jiǎng)P撒密碼的實(shí)現(xiàn)

    這篇文章主要介紹了python 密碼學(xué)示例——?jiǎng)P撒密碼的實(shí)現(xiàn),幫助大家更好的利用python處理密碼,感興趣的朋友可以了解下
    2020-09-09
  • python的多線程原來可以這樣解

    python的多線程原來可以這樣解

    這篇文章主要為大家介紹了python的多線程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python爬取365好書中小說代碼實(shí)例

    Python爬取365好書中小說代碼實(shí)例

    這篇文章主要介紹了Python爬取365好書中小說代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python調(diào)用C++,通過Pybind11制作Python接口

    Python調(diào)用C++,通過Pybind11制作Python接口

    今天小編就為大家分享一篇關(guān)于Python調(diào)用C++,通過Pybind11制作Python接口,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 詳解Python調(diào)用華為API實(shí)現(xiàn)圖像標(biāo)簽

    詳解Python調(diào)用華為API實(shí)現(xiàn)圖像標(biāo)簽

    華為云圖像標(biāo)簽可識(shí)別上千種通用物體以及數(shù)百種場(chǎng)景標(biāo)簽,一個(gè)圖像可包含多個(gè)標(biāo)簽內(nèi)容,語義內(nèi)容非常豐富。本文將通過Python調(diào)用華為API實(shí)現(xiàn)圖像標(biāo)簽,需要的可以參考一下
    2022-04-04
  • 關(guān)于Python不換行輸出和不換行輸出end=““不顯示的問題(親測(cè)已解決)

    關(guān)于Python不換行輸出和不換行輸出end=““不顯示的問題(親測(cè)已解決)

    這篇文章主要介紹了關(guān)于Python不換行輸出和不換行輸出end=““不顯示的問題(親測(cè)已解決),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

紫金县| 汉阴县| 沾益县| 江西省| 扬中市| 岳池县| 项城市| 阳江市| 壤塘县| 西贡区| 霍林郭勒市| 贵州省| 闽清县| 怀远县| 长岛县| 虹口区| 鄯善县| 永康市| 南昌县| 开封市| 南城县| 沁阳市| 兴海县| 监利县| 长阳| 民权县| 甘南县| 敖汉旗| 屯留县| 高邮市| 永善县| 荣昌县| 牡丹江市| 三穗县| 苍梧县| 利川市| 武邑县| 深水埗区| 浪卡子县| 金秀| 新兴县|