shell多进程

现象

远程主机监控脚本运行速度感人,想要提速。通过分析脚本各语句,主要耗时在ssh操作上,有多条ssh自动登录并执行操作的语句块在依次执行0.0……
通过分析,初步考虑有两种方案:

  1. 将这多个需要ssh登录并执行的语句块合为一个ssh函数进行处理
  2. 将这多个语句块进行并发

对于方案1:由于使用的ssh自动登录函数为前期已经封装好的,如果要将多个语句块逻辑放在一个ssh自动登录函数中,需要对ssh自动登录函数再次进行封装。分析当前语句块的逻辑,再次封装需要的逻辑处理与文件控制比较复杂,只当做备选方案,暂不使用。

讲知识

一、如何进行并发
shell的并发,可以通过将程序挂在后台执行来实现,使用&,对于代码块,需要使用

{
    代码块1
}&
其他代码2

shell脚本会先将代码块1放到后台执行,并不等待代码块1结束,直接执行其他代码2
二、如何判断后台代码块1是否完成
可以通过<code>&!</code>来获取刚挂后台进程id,通过wait来等待代码块1完成

{
    代码块1
}&1
codeOneP=&!
其他代码2

wait codeOneP
完成后操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容