关于shell:一个简单的进程管理工具

58次阅读

共计 1100 个字符,预计需要花费 3 分钟才能阅读完成。

初来乍到,请多关照!
大家好,我是 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 命令常识,感兴趣的点个关注吧!感激反对!

扫码关注我的公众号吧~

正文完
 0