[英]how to monitor various process on linux
我的應用程序由4個獨特的過程組成。 出於HA的原因,我將啟動每個實例的3個實例,以便每個進程的2個實例將在單個linux主機上運行,而另一個實例在另一個linux主機上運行。 我正在嘗試編寫一個監視腳本(bash腳本),該腳本將定期輪詢這些進程。 我的主要挑戰是編寫一個依賴於主機名和進程名的腳本聽起來很笨拙。 例如,我不想編寫一個腳本來監視IP地址為A的Linux主機上的進程A-1,進程B-1,進程A-2,進程B-2和linux上的進程A-3 IP主機地址B。
編寫獨立於主機名和進程名的監視腳本的一種方法是,當這些進程中的每一個啟動時,它們都會創建一個互斥體名稱。 例如,進程A-1將創建一個稱為互斥鎖的互斥鎖。進程A-1和進程A-2將創建一個稱為互斥鎖的互斥鎖。process-A-2。 然后,腳本所需要做的就是在名稱為Mutex.process-A *的系統上查找互斥量。 然后,腳本可以使用ps命令檢查這些進程是否正在運行。
我的問題是,加上互斥鎖名稱可以嗎? 您是否有另一種方法可以在Linux上解決此問題?
我將親自編寫一個bash腳本,該腳本在后台運行所有這些進程,然后您可以在調用它們后直接存儲它們的PID,存儲process1_pid=$!
在您將每一個發送到后台,然后觸發另一個腳本以使用這些pid進行監視之后。
獲取其PID的另一種方法是使用jobs
命令,該命令將列出您已設置為后台的所有jobs -p
將列出您在后台具有的所有PID。 您還可以利用作業來了解它們是否仍在運行。
http://www.gnu.org/software/bash/manual/bashref.html#Job-Control
我將從那里開始,如果它更復雜,並且您的進程是在其他地方創建的,則可以始終使用特定用戶來運行所有進程,並使用ps -u
按用戶過濾它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.