newlisp 監控Linux程序 二

2021-08-27 15:29:33 字數 904 閱讀 8480

在前文newlisp 監控linux程序 一中,我已經實現了乙個newlisp指令碼,能夠根據配置檔案中的配置檢查程序是否存在,並且將檢查結果寫到本地日誌檔案中。

本篇繼續,當檢查程序已經不存在後,要啟動程序。但是每個程序啟動的命令是不相同的,不可能將所有這些特殊命令都寫在process.lsp檔案中。最好是將**以資料的方式解除安裝filter.lsp配置檔案中。然後程式執行時,從配置檔案中讀取出來,並當作**執行。由於目前**比較簡單,就是執行一句話,所以暫時還不需要巨集這個大殺器出場,只需要用eval函式即可。

現在filter.lsp的配置改了一下:

(set 'filters (list '("dispatch"

"redmine"

(exec "service redmine start"))))

filters這裡是乙個list, 包含了唯一乙個元素也是list,這個唯一的元素list擁有三個元素,第三個也是乙個list。前面用了單引號防止過早求值。

process.lsp**也修改了一點點:

#!/usr/bin/newlisp

(set 'cur-path "/opt/detector")

(define (check-process filter-str)

(set 'l (length r))

(> l 3))

(define (add-log msg)

(println msg)

)(dolist (sub-list filters)

(if (check-process (first sub-list))

(begin

)(begin

(eval (sub-list 2)))))

(exit)

newlisp 監控Linux程序 一

之前我的newlisp 監控redmine中描述了監控redmine程序的方法,今天更進一步,新增乙個配置檔案,裡面描述了要監控的程序list,這樣每次逐個檢查本機的程序.先來實現個簡單的檢查,乙個函式check proces,接受乙個字串,用來檢查程序是否存在 usr bin newlisp de...

Zabbix獲取並監控linux系統的程序名

最近需要監控執行在業務系統上的程序,要求是看到具體的程序名。通常監控程序一般可以使用內建的鍵值,也就是 proc.num 程序名,root,這個鍵值,但只能返回的是程序的數量,雖然效果上也能實現,但和預期的結果有些區別,而且也不直觀,尤其在同乙個程序數多的時候。下面說下獲取具體程序名的方法 1 ag...

Linux進單使用者

除了用光碟引導rescue模式,敲入linux rescure 還有一種方法是用啟動裝載器來進入單使用者模式 1.grub 進入啟動畫面之後,敲入 e 把游標移動到kernel 那一行,再敲入 e 在kernel 一行的最後加上空格single,回車 敲入 b 啟動系統,即進入單使用者模式,這個時候...