溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Hyperic調用Python實現進程守護

發布時間:2020-10-25 16:41:08 來源:腳本之家 閱讀:183 作者:朱萬駿 欄目:開發技術

利用Hyperic調用Python,實現進程守護,供大家參考,具體內容如下

調用操作系統方法獲取進程信息,判斷進程是否存在,Linux和Windows均支持,區別在于獲取進程信息和啟動進程的方法不同。

代碼如下:

#!/usr/bin/python
#-*- coding:utf-8 -*-
 
"""
名稱:進程檢查腳本
作者:wjzhu
時間:2014-06-30
功能:根據進程名稱,判斷進程是否存在,執行相應操作
參數:p_name:進程名稱|p_path:進程啟動路徑
返回值:0:進程存在,正常退出|1:進程不存在,執行命令后,進程存在|2:其他異常情況
 
update:2014-07-29 啟動進程前調用os.chdir()方法,改變當前工作目錄,解決部分進程啟動時依賴工作目錄問題
 
"""
 
import os
import sys
 
#初始化進程名稱和命令路徑
 
#使用參數方式傳遞程序名稱和程序路徑
#p_name = sys.argv[1]
#p_path = sys.argv[2]
 
#Linux
p_name = "redis"
p_path = "/usr/local/redis-2.8.11/src/redis-server/usr/local/redis-2.8.11/redis.conf"
 
#Windows
#p_name = "filezilla.exe"
#p_path = "C:\\Program Files (x86)\\FileZilla FTP Client\\filezilla.exe"
 
 
 
#Linux平臺調用ps命令/Win平臺調用tasklist命令,判斷進程是否存在,傳入進程名稱,返回為查詢得到的進程個數
def process_exit(process_name):
  #Linux
  p_checkresp = os.popen('ps aux | grep "' + process_name + '" | grep -v grep').readlines()
 
  #Windows,為避免進程名稱被截斷,輸出格式為csv,使用tasklist /fo csv
  #p_checkresp = os.popen('tasklist /fo csv | find "' + process_name + '"').readlines()
  return len(p_checkresp)
 
#Linx平臺調用os.system方法啟動命令/Win平臺調用os.startfile方法啟動命令,傳入命令路徑,無返回值
def process_exec(process_path):
  #將工作目錄切換到啟動腳本所在目錄,解決部分進程啟動時依賴工作目錄問題
  os.chdir(os.path.dirname(process_path))
 
  #Linxu
  os.system(process_path)
 
  #Windows
  #os.startfile(process_path)
 
#主函數
if __name__ == '__main__':
 
  #查詢進程個數大于1,返回0,不做任何操作,退出
  if process_exit(p_name) >= 1:
    print 0
    sys.exit(0)
     
  #查詢進程個數等于0
  elif process_exit(p_name) == 0:
    #執行啟動命令
    process_exec(p_path)
    #查詢進程個數大于1,返回1,啟動成功,退出
    if process_exit(p_name) >= 1:
      print 1
      sys.exit(0)
    #啟動失敗,返回2,退出
    else:
      print 2
      sys.exit(0)
       
  #其他問題,返回2,退出
  else:
    print 2
    sys.exit(0)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女