之前的工作經歷中有用過類似的工具,不過是比較複雜,是用c++寫成的,最近在把windows程式移植到linux上,windows上有相應的介面操控的程序管理工具,而到了linux上我們能看到只有乙個黑乎乎的shell,亟需這麼個工具,於是花了兩天時間寫了簡單的指令碼。
其實裡面的邏是很簡單的,就拿sean start all舉個栗子吧,sean就是乙個指令碼,會接受兩個引數(start和all),第乙個是代表操作,第二個代表物件,那麼又是如何知道我要啟動哪些程式的呢?很簡單,配置的嘛,我們可以在config.ini中配置要管理的程式,只需配置3項,全路徑的程式名、啟動命令、停止命令,sean指令碼會根據傳參到配置檔案中獲取相應的程式名及啟動指令或停止指令,然後執行相應的啟動或停止指令即可。
那就不得不提到linux的crontab任務了,crontab是linux裡的定時執行指令的服務,說到這裡,想必大家都應該猜到怎麼實現的了,對的,讓crontab定時檢測各個程式是否還存活就行啦,如果程式死掉了,用sean指令碼拉起一下就ok啦!而crontab任務的增刪都封住到了sean指令碼中,使用者是感知不到的,啟動增加crontab任務,停止時刪除crontab任務。
這個通過python的crontab包就能輕鬆實現啦!之前也用過shell指令碼做過類似的功能,偶爾會蹦出來不生效等詭異的問題,所以強烈推薦用python裡的crontab包,人生苦短a,從官網上看這個包歷史也有十多年了,應該是挺靠譜的,在測試的蹂躪下也沒出啥問題,而且我發現可以將定時設定讓某個使用者執行,這樣crontab任務就可以以普通使用者的方式執行,許可權最小化後也更加的安全。具體用法可以看我的github,文章開頭有鏈結,crontab包更多豐富的用法可以到包裡的單元測試裡檢視,寫的很細。
程序管理工具
程序管理 pstree作用是以程序樹的形式顯示程序 例如 pstree 8123 顯示程序名不顯示各個程序號 pstree p 8123 顯示程序名稱及各級程序的程序號 ps作用是顯示當前所有執行程序的詳細資訊 例如 ps aux 顯示所有包含其他使用者的行程 ps aux 選項 a 顯示包括所有終...
Winform 乙個簡單的賬戶管理工具
最近一直覺得註冊的賬戶越來越多,帳號密碼神馬的容易弄混。自己就折騰了乙個簡單的賬戶管理工具,其實實現也挺簡單,將每個賬戶的密碼及相關密碼提示資訊,經aes演算法加密之後儲存到資料庫,當前登入使用者可以查詢自己的賬戶資訊,而不是別人的。介面如下 資料表sql語句 1go2 3 object table...
推薦乙個Redis管理工具
redis是乙個開源 bsd許可 記憶體儲存的資料結構伺服器,可用作資料庫,快取記憶體和訊息佇列 它支援字串 雜湊表 列表 集合 有序集合,位圖,hyperloglogs等資料型別。內建複製 lua指令碼 lru收回 事務以及不同級別磁碟持久化功能,同時通過redis sentinel提供高可用,通...