首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何编写bash脚本以便在进程死机时重新启动进程

问: 我有一个python脚本,它将检查队列并对每个元素执行操作: # checkqueue.py while True: check_queue() do_something() 我如何编写一个...大致如下伪代码(或者它应该做一些类似 ps | grep 的事情?)...Restart..." >&2 sleep 1 done 上面的bash代码在一个until循环中运行procA。第一行启动procA并等待它结束。它结束时,until检查其退出状态。...在这种情况下,我们不想重新启动它(我们只是要求它关闭!如果退出状态不是0,until将运行循环体,该循环体在STDERR上发出错误消息,并在 1 秒后重新启动循环返回第 1 行)。...因为如果procA的启动顺序出了问题并立即崩溃,你将得到一个非常密集的循环,不断重新启动和崩溃。sleep 1消除了这种压力。

16920
您找到你想要的搜索结果了吗?
是的
没有找到

VS Code 调试完全攻略(3):编辑变量并重新执行函数

在前面的文章中,我们已经研究了如何开始调试简单的服务器以及可以步进逐行调试代码。今天,我们将介绍两个重要的功能。...让我们看看如何在前文的微型服务器代码 (https://github.com/thekarel/debug-anything/blob/master/node/index.js)中使用这两种调试方式。...代码 Hello, undefined! 我们的玩具服务器的请求中始终存在一个名为 name 的查询参数。如果没有参数,响应将会变为 “Hello, undefined!”...undefined 然后跳过下一行(F10)并观察 getGreeting 的返回值: ?...重写函数 请记住:重写函数后,你必须重新启动处理流程才能返回到原始实现。 就是这样:你现在可以在调试器中重新启动函数,并编辑本地和闭包值,包括字符串和函数。

3.6K20

PyTorch 分布式之弹性训练(1) --- 总体思路

节点/训练进程自动进入或者退出时候,其他节点/训练进程如何感知。 难点2:如何处理成员变更 发现有成员变更之后,如何处理。 难点3:如何捕获单个进程训练失败。...如何在单个节点上管理所有训练进程,从而某个进程发生错误时候,可以捕获其失败,或者重试或者重启该进程。 难点4:如何与现有训练代码集成。...本质上,用户提供了一个“内部训练”循环,该循环被 PET 包裹在一个可重试的循环中。 PET循环是可重试的循环,其负责建立或重新建立过程组,以及将用户的训练恢复到良好状态。...但是,当代理以非零错误代码退出时,应该由上层调度模块(例如 Kubernetes)来重新启动代理(同理,此代理将重新启动它负责的所有worker)。相同的恢复机制也适用于节点级故障。...但是,当代理以非零错误代码退出时,应该由上层调度模块(例如 Kubernetes)来重新启动代理(同理,此代理将重新启动它负责的所有worker)。

1.5K20

揭秘LOL背后的IT基础架构丨基础设施即代码

本文将在此基础上深入探讨其他主题:基础架构即代码、负载均衡和故障转移测试。如果你对如何以及为什么建立这些工具、基础架构和流程感到好奇,那么本文正适合你。...对于我们的大多数系统,我们会自动启动一个新实例,一旦它准备好接收流量,系统就会将其重新添加到循环中。我们认为它非常“漂亮”。...image.png 请求来自ECMP层时,它们可能会遇到许多负载均衡的实例。这些负载均衡实例监视每个真实的Web服务器,并确保服务器运行状况良好,在适当的时间内做出响应,准备接收新的连接等。...如果满足所有这些条件,则服务器会收到请求,并且答复将一直返回到玩家。 这一层通常是我们进行blue-green部署和智能运行状况检查的地方,例如“/index.html加载的响应代码为200吗?”...故障切换测试 高可用系统最重要的部分之一,就是发生故障时,该系统能够进行故障转移。当我们刚开始构建数据中心时,通过让工程师拉出一些电缆,并在这里和那里重新启动一些服务器,来模拟这些问题。

65820

如何在Ubuntu 14.04上安装Ajenti控制面板和Ajenti V.

关于自签名证书,你可以参考为Apache创建自签名SSL证书和如何为Nginx创建自签名SSL证书这两篇文章。...Linux系统下给非root用户添加sudo权限说明了如何添加用户并为他们提供sudo访问权限。 安装Ajenti 在此步骤中,我们将安装Ajenti核心面板。首先,使用SSH连接到您的服务器。...向下滚动到底部,然后单击“ 重新启动”按钮。它提示您重新启动Ajenti时,单击“ 确定”。这是重新启动Ajenti服务。在这样做的同时,您的浏览器将会显示Reconnecting...。...它要求保留当前密码时按ENTER键,这对于本教程来说很好。 完成后,单击屏幕顶部终端0旁边的X返回到主页。返回侧栏中的Configure菜单,然后使用屏幕底部的按钮重新启动Ajenti。...Ajenti重新启动时,您应该会在侧栏中看到一个Web部分,并在其下方看到一个网站选项。在网站视图中,您可以添加和管理网站以及监控配置,以确保一切正常。

2.3K20

Java爬虫快速开发工具uncs的部署全攻略

一、基本用法 1.1 开发包获取 目前只能在公司内网maven服务器获取到 com.cdc <artifactId...网络爬取步骤模板,用户使用此模板就不用关心httpclient如何使用了 步骤:建立java类-->继承com.cdc.uncs.service.NetCrawlPart-->重写beforeCrawl...新增支持循环横向并发 场景举例: for循环,爬取某网站数据时,按月份循环爬取为第一层循环,每个月类型的分页为第二层循环 while循环,同for循环,区别在于银行的分支只有下一页,不知道总页数 配置样例...场景举例:爬取某网站时,有时需要用户输入短信,此时需要人为参与,程序必须中断,等用户输入短信后才可以继续执行 代码示例: 中断代码 @Override public void afterCrawl...,完善http初始化部分代码(优化完毕)及cookie处理部分代码(完成) 让part持有context,这样部分方法不再需要context参数(完成) 提供快速生成代码工具 提供可视化工具,随时查看某个

89340

在耗时较长的Controller中使用Future异步

代码如下 public class Dog implements Serializable { private String name; private int age; public...第一种是最传统的单线程返回。第二种采用了Future模式的异步返回。我们对性能进行一次压测,压测的线程数1000,循环5次,共5000次。 ? 我们先来压第一个getdog ? 压测结果如下 ?...通过该结果我们可以看到吞吐量为96.9,最小响应时间2秒6,最大响应时间10秒3(当然这是我本机的压测,非服务器,数值量会偏小) 然后我们对异步调用进行压测 ? 压测结果如下 ?...request请求,调用和处理Callable异步执行的返回结果,然后最终返回结果。...但这里有一点需要说明,一个请求处理及其短时间的时候,不要使用Future模式的异步调用,性能反而不如单线程模式。

1K20

android进程保活

2、利用系统Service机制拉活 在service中有一个onStartCommend(),将返回值设置为start_stick(service因系统内存不足被杀死时,在系统内存充足时重新启动service...缺点:只能在当service因系统内存不足被杀死时,才能重新启动例如进程被强制杀死后,service无法重启进程。...3、利用native进程拉活 利用linux 中fork机制创建一个native进程,在native进程可以监控主进程的存活, 主进程挂掉后,可以立即对主进程拉活,主要利用的就是android里面的...1、native进程中如何监控主进程呢? 1)、在native进程中只用死循环或定时器监控,但是这是比较耗时的,浪费资源的。...2、如何在native进程中对主进程进行拉活? 主要是am命令 4、 利用JobScheduler机制拉活 会监听主进程 5、利用账户同步机制拉活 最新版本对账户同步改动了,估计不行了。

69520

【软件架构】支持大规模系统的设计模式和原则

此属性为系统提供了极大的稳定性,因为它允许我们简化代码,也使我们的操作生活更轻松:可以重试失败的 HTTP 请求,并且可以重新启动崩溃的进程而无需担心副作用。...一个展示异步如何提供良好效率/性能的示例是 Nodejs,它具有单线程事件循环,但它正在与许多其他并发语言和框架进行斗争。...假设一切正常,它应该返回 HTTP 代码 200,如果服务出现故障,它应该返回 500 错误。...服务 A 调用服务 B 时,请求可能会失败,如果发起重试,则第二个请求可能会成功通过。也就是说,重要的是不要以简单的方式(循环)实现重试,而不是“烘焙”到重试之间的延迟机制(也称为“睡眠”)。...有一个专用的 HTTP 响应代码 429“请求过多”,旨在向客户端发出信号,表明服务器尚未准备好以当前速率接受更多请求。

55220

使用包定长FixedLengthFrameDecoder解决半包粘包

enter image description here 然后重新启动服务器客户端,结果如下: 服务器端结果: ----Server Started---- --- accepted client--...enter image description here FixedLengthFrameDecoder是继承自 ByteToMessageDecoder类的,服务器接受buffer数据就绪后会调用ByteToMessageDecoder...4.2.6如果发现接受buffer里面的字节数小于我们设置的固定长度frameLength则说明出现了半包情况,则直接返回null;否者读取固定长度的字节数。...然后执行代码4.2.4.3,其判断outSize == out.size()说明代码4.2.6没有读取一个包(说明出现了半包),则看当前buffer缓存的字节数是否变化了,如果没有变化则结束循环读取,如果变化了则可能之前的半包已经变成了全包...代码4.2.4.4判断是否只需要读取单个包(默认false),如果是则读取一个包后就跳出循环,也就是如果出现了粘包现象,在一次channelRead事件到来后并不会循环读取所有的包,而是读取最先到的一个包

98430

常见重试方法的交互研究

该请求通过负载均衡器,该负载均衡器选择将请求发送到哪个服务器 。请求成功或失败,您可以在返回客户端时看到。客户端等待发送下一个请求时,它显示为循环计时器。...由于中间没有任何时间间隔,如果所有的客户端都发生这种行为,这会导致服务端爆炸,爆炸代表的是服务器过载和崩溃。然后它会在几秒钟后重新启动。...通常,服务器会有请求队列,服务器有太多工作要做时,这些请求队列会拒绝请求,但为了简单起见,我们使用过载来表示任何潜在的故障模式。 一旦服务器崩溃一次,重试产生的额外负载可能会使其难以恢复。...一旦一台服务器失效,剩下的两台服务器将无法处理新的负载。然后开始继续陷入崩溃的漩涡。 延迟重试 因此,在紧密循环中重试是有问题的,我们已经了解了原因。人们要做的下一件事是在每次重试之间添加延迟。...一旦请求量增加,重试这些请求时,您会注意到回退开始,事情会平静下来。服务器可能会崩溃, 但客户端会为其提供恢复空间。

14720

MIT 6.824 Lec4 FAQ

我们应该如何选择哪一个更好? 答: FT复制计算;你可以用它来为任何现有的网络服务器透明地增加容错。FT提供相当严格的一致性,对服务器和客户是透明的。...问:第3.4节的回弹缓冲区如何帮助避免竞争? 答:一个网络数据包或请求的磁盘块到达主服务器并需要复制到主服务器的内存时,问题就出现了。在没有FT的情况下,相关硬件在软件执行时将数据复制到内存中。...该服务器执行的大概是这样的代码: test-and-set() { acquire_lock() if flag == true: release_lock() return false...else: flag = true release_lock() return true 主服务器(或备份服务器)只有在test-and-set返回true时才会接管("...这些是必须在备份上重新启动的I/O操作。一个I/O完成时,I/O设备会产生一个I/O完成中断。因此,如果日志中缺少I/O完成中断,那么备份就会重新启动I/O。

32110

Akka 指南 之「Actor 模型如何满足现代分布式系统的需求?」

Actor 模型抽象允许你从通信的角度来考虑你的代码,这与大型组织中人员之间发生的交换没有什么不同。 使用 Actor 允许我们: 在不使用锁的情况下强制封装。...对于对象,一个方法返回时,它释放对其执行线程的控制。在这方面,Actor 的行为非常类似于对象,它们对消息作出反应,并在完成当前消息的处理后执行返回。...Actor 的行为描述了 Actor 如何响应消息(如发送更多消息和/或更改状态)。执行环境协调线程池以完全透明地驱动所有这些操作。...子 Actor 永远不会默不作声地死去(除了进入一个无限循环之外),相反,他们要么失败,他们的父级可以对错误作出反应,要么他们被停止(在这种情况下,相关方会被自动通知)。...从外部看不到重新启动:协作 Actor 可以在目标 Actor 重新启动时继续发送消息。 现在,让我们简单介绍一下 Akka 提供的功能。

1.2K30

vmware的APD和PDL详细解析

如果未从设备返回 PDL SCSI 感知代码无法联系存储阵列,或者所具有的存储阵列未返回受支持的 PDL SCSI 代码时),则该设备处于全部路径异常 (APD) 状态,ESXi 主机将继续发送 I...如果必须重新启动管理代理,则暂时将无法通过 vCenter Server 管理主机。 计划内 PDL 与计划外 PDL 解析: 试图移除向 ESXi 主机提供的设备时,将发生计划内 PDL。...有关如何在 ESXi 5.x 中正确取消提供 LUN 的详细信息,请参见 如何从ESXi 主机卸载 LUN 或分离数据存储设备 (2072353) 。...发生数据存储可访问性故障时,受影响的主机无法再访问特定数据存储的存储路径。您可以确定 vSphere HA 将对此类故障作出的响应,从创建事件警报到虚拟机在其他主机上重新启动。...其他补充: 脑裂 群集发生裂脑的状况时候,因为无法进行任何沟通而误会对方无法运作,所以主与备份服务器都会启动浮动IP和相关服务,此时若两部服务器对外连线亦未短线,那么势必导致有些使用者存取的是主要服务器

3.6K10

想要创建一个基于TCP实现的http服务器,应该怎么做?

比如客户在表单中输入数据后,服务器能够将运行结果返回个客户 4、能够通过页面对数据库进行操作,如增删查改等操作 一、http服务器实现的基本框架 关于HTTP协议 即超文本传输协议,是互联网上应用最广泛的网络协议...例如请求的资源不存在时,服务器需要返回给浏览器一个默认的404页面,告诉客户请求的资源不存在。...、暂停以及重新启动 httpd.pid:与http_ctl.sh配合使用。...如果把服务器变成守护进程在后台运行,重新启动时就需要检测服务器是否启动,该文件存放服务器启动以后的进程id httpd.h:服务器的方法声明 httpd.c:方法实现 main.c:服务器的主逻辑...) 解决:测试请求一个路径明确的test.html文件,加入调试信息 ,将问题定位在:如果请求的资源存在,应该如何处理。

3.7K150

Spring 全家桶之 Spring Web MVC(九)- Exception

x=0 1067行代码就是执行目标方法,并且此时dispatchException=null,此时没有异常,待目标方法执行后就是出现异常,点击Step Over进入异常处理 目标方法中的异常出现...类 进入Step Over,进入到for循环中 此时就出现了前面说的Spring MVC 默认配置的三个HandlerExceptionResolver,在这个for循环中3个异常解析器会逐个解析...x=0 能够返回自定义的页面,但是没有显示异常信息。...想要获取异常信息可以在方法中返回ModelAndView,将错误信息放在ModelAndView中,再从页面中取出 // 专门处理异常的方法,指定类型 // 直接返回ModelAndView,将异常信息方法封装在类中...进行的处理 启动DEBUG模式,点击首页的bravo超链接 进入循环异常处理器列表的代码块中 多次Step Over后,只有DefaultHandlerExceptionResolver,可以处理这类异常

43620
领券