初来乍到,请多关照!
大家好,我是Sean,明天分享一个简略的过程管理工具。
代码比较简单,次要波及shell、python以及Linux上的一些常识。
通过简略的配置,即能够对多个程序进行对立治理,也能够对某个过程进行操作,并兼具过程监控、零碎自启动程序的性能。
源码已上传至我的GitHub:https://github.com/HelloWorld...

先看下部署完的成果

怎么想着做这么个工具?

之前的工作经验中有用过相似的工具,不过是比较复杂,是用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工作。

crontab工作治理是如何实现的?

这个通过Python的Crontab包就能轻松实现啦!之前也用过shell脚本做过相似的性能,偶然会蹦出来不失效等诡异的问题,所以强烈推荐用Python里的Crontab包,人生苦短a,从官网上看这个包历史也有十多年了,应该是挺靠谱的,在测试的践踏下也没出啥问题,而且我发现能够将定时设置让某个用户执行,这样crontab工作就能够以普通用户的形式执行,权限最小化后也更加的平安。具体用法能够看我的GitHub,文章结尾有链接,Crontab包更多丰盛的用法能够到包里的单元测试里查看,写的很细。

写得可能比拟粗,倡议间接GitHub看看脚本实现,有问题大家能够私信或留言给我。
后续细化一下,分享一些shell命令常识,感兴趣的点个关注吧!感激反对!

扫码关注我的公众号吧~