CN111984446A - 一种基于子进程的多控制器系统的运转方法和装置 - Google Patents

一种基于子进程的多控制器系统的运转方法和装置 Download PDF

Info

Publication number
CN111984446A
CN111984446A CN202010789175.0A CN202010789175A CN111984446A CN 111984446 A CN111984446 A CN 111984446A CN 202010789175 A CN202010789175 A CN 202010789175A CN 111984446 A CN111984446 A CN 111984446A
Authority
CN
China
Prior art keywords
controller system
signal
response
clock signal
parent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010789175.0A
Other languages
English (en)
Inventor
郑乾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010789175.0A priority Critical patent/CN111984446A/zh
Publication of CN111984446A publication Critical patent/CN111984446A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明公开了一种基于子进程的多控制器系统的运转方法和装置,方法包括:使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;使用程序启动函数族在子进程中执行命令脚本或运行临时进程;响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程。本发明能够杀死相应超时的子进程,保障存储系统的其它功能正常运行。

Description

一种基于子进程的多控制器系统的运转方法和装置
技术领域
本发明涉及存储领域,更具体地,特别是指一种基于子进程的多控制器系统的运转方法和装置。
背景技术
在云计算时代,海量存储设备功能日益强大,对应的存储系统也是越来越复杂,系统中不乏一些需要调用脚本的情况,因此就需要创建子进程。父子进程间通过管道进行通信,只能一个进程写完,另一个进程才能读,若发生某些意外情况导致管道被写满,就可能导致子进程挂死,影响存储系统的某些功能。
针对现有技术中子进程挂死导致存储系统功能受到影响的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种基于子进程的多控制器系统的运转方法和装置,能够杀死相应超时的子进程,保障存储系统的其它功能正常运行。
基于上述目的,本发明实施例的第一方面提供了一种基于子进程的多控制器系统的运转方法,包括执行以下步骤:
使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;
使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;
使用程序启动函数族在子进程中执行命令脚本或运行临时进程;
响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;
响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程。
在一些实施方式中,使用闹钟函数在多控制器系统中注册时钟信号还包括:将时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
在一些实施方式中,父进程和子进程之间通过系统管道通信连接。
在一些实施方式中,方法还包括:
响应于子进程执行命令脚本或运行临时进程而向父进程发出推送信号;
响应于父进程接收到推送信号而从系统管道读取数据。
在一些实施方式中,系统管道为具有4k容量的Linux系统管道。
在一些实施方式中,调用进程杀死系统来杀掉子进程还包括:清除系统管道中的数据。
在一些实施方式中,执行命令脚本包括执行shell脚本或者perl脚本。
本发明实施例的第二方面提供了一种基于子进程的多控制器系统的运转装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;
使用程序启动函数族在子进程中执行命令脚本或运行临时进程;
响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;
响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程。
在一些实施方式中,使用闹钟函数在多控制器系统中注册时钟信号还包括:将时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
在一些实施方式中,父进程和子进程之间通过系统管道通信连接;方法还包括:
响应于子进程执行命令脚本或运行临时进程而向父进程发出推送信号;
响应于父进程接收到推送信号而从系统管道读取数据。
本发明具有以下有益技术效果:本发明实施例提供的基于子进程的多控制器系统的运转方法和装置,通过使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;使用程序启动函数族在子进程中执行命令脚本或运行临时进程;响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程的技术方案,能够杀死相应超时的子进程,保障存储系统的其它功能正常运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于子进程的多控制器系统的运转方法的流程示意图;
图2为本发明提供的基于子进程的多控制器系统的运转方法的详细流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够杀死相应超时的子进程的基于子进程的多控制器系统的运转方法的一个实施例。图1示出的是本发明提供的基于子进程的多控制器系统的运转方法的流程示意图。
所述的基于子进程的多控制器系统的运转方法,如图1所示,存储过程包括执行以下步骤:
步骤S101:使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;
步骤S103:使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;
步骤S105:使用程序启动函数族在子进程中执行命令脚本或运行临时进程;
步骤S107:响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;
步骤S109:响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,使用闹钟函数在多控制器系统中注册时钟信号还包括:将时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
在一些实施方式中,父进程和子进程之间通过系统管道通信连接。
在一些实施方式中,方法还包括:
响应于子进程执行命令脚本或运行临时进程而向父进程发出推送信号;
响应于父进程接收到推送信号而从系统管道读取数据。
在一些实施方式中,系统管道为具有4k容量的Linux系统管道。
在一些实施方式中,调用进程杀死系统来杀掉子进程还包括:清除系统管道中的数据。
在一些实施方式中,执行命令脚本包括执行shell脚本或者perl脚本。
下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。
参见图2,MCS(多控制器系统)执行shell命令或者启动一个短时间运行的临时进程时,通过fork(复刻分叉函数)调用创建一个子进程。在子进程中通过alarm(闹钟函数)调用在linux系统中注册一个时钟信号并且设置超时时间,将注册的alarm信号设置为非阻塞。然后,通过exec(程序启动函数族)执行shell命令或者启动一个短时间运行的临时进程。父进程等待子进程推出的信号或者超时信号,当子进程正常推出时,父进程读取管道内的数据,当子进程超时时,父进程通过kill(进程杀死系统)调用,将子进程杀死。
从上述实施例可以看出,本发明实施例提供的基于子进程的多控制器系统的运转方法,通过使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;使用程序启动函数族在子进程中执行命令脚本或运行临时进程;响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程的技术方案,能够杀死相应超时的子进程,保障存储系统的其它功能正常运行。
需要特别指出的是,上述基于子进程的多控制器系统的运转方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于基于子进程的多控制器系统的运转方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够杀死相应超时的子进程的基于子进程的多控制器系统的运转装置的一个实施例。
基于子进程的多控制器系统的运转装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;
使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;
使用程序启动函数族在子进程中执行命令脚本或运行临时进程;
响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;
响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程。
在一些实施方式中,使用闹钟函数在多控制器系统中注册时钟信号还包括:将时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
在一些实施方式中,父进程和子进程之间通过系统管道通信连接;方法还包括:
响应于子进程执行命令脚本或运行临时进程而向父进程发出推送信号;
响应于父进程接收到推送信号而从系统管道读取数据。
从上述实施例可以看出,本发明实施例提供的基于子进程的多控制器系统的运转装置,通过使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;使用闹钟函数在多控制器系统中注册时钟信号,并为时钟信号设置超时时间;使用程序启动函数族在子进程中执行命令脚本或运行临时进程;响应于时钟信号确定子进程运行时间超过超时时间而向父进程发出超时信号;响应于父进程接收到超时信号而调用进程杀死系统来杀掉子进程的技术方案,能够杀死相应超时的子进程,保障存储系统的其它功能正常运行。
需要特别指出的是,上述基于子进程的多控制器系统的运转装置的实施例采用了所述基于子进程的多控制器系统的运转方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述基于子进程的多控制器系统的运转方法的其他实施例中。当然,由于所述基于子进程的多控制器系统的运转方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述基于子进程的多控制器系统的运转装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种基于子进程的多控制器系统的运转方法,其特征在于,包括执行以下步骤:
使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;
使用闹钟函数在多控制器系统中注册时钟信号,并为所述时钟信号设置超时时间;
使用程序启动函数族在所述子进程中执行命令脚本或运行临时进程;
响应于所述时钟信号确定所述子进程运行时间超过所述超时时间而向所述父进程发出超时信号;
响应于所述父进程接收到所述超时信号而调用进程杀死系统来杀掉所述子进程。
2.根据权利要求1所述的方法,其特征在于,使用闹钟函数在多控制器系统中注册时钟信号还包括:将所述时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
3.根据权利要求1所述的方法,其特征在于,所述父进程和所述子进程之间通过系统管道通信连接。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述子进程执行命令脚本或运行临时进程而向所述父进程发出推送信号;
响应于所述父进程接收到所述推送信号而从所述系统管道读取数据。
5.根据权利要求3所述的方法,其特征在于,所述系统管道为具有4k容量的Linux系统管道。
6.根据权利要求3所述的方法,其特征在于,调用进程杀死系统来杀掉所述子进程还包括:清除所述系统管道中的数据。
7.根据权利要求1所述的方法,其特征在于,执行命令脚本包括执行shell脚本或者perl脚本。
8.一种基于子进程的多控制器系统的运转装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
使用复刻分叉函数以多控制器系统的主进程为父进程创建子进程;
使用闹钟函数在多控制器系统中注册时钟信号,并为所述时钟信号设置超时时间;
使用程序启动函数族在所述子进程中执行命令脚本或运行临时进程;
响应于所述时钟信号确定所述子进程运行时间超过所述超时时间而向所述父进程发出超时信号;
响应于所述父进程接收到所述超时信号而调用进程杀死系统来杀掉所述子进程。
9.根据权利要求8所述的装置,其特征在于,使用闹钟函数在多控制器系统中注册时钟信号还包括:将所述时钟信号设置为使得不需要等待内核输入输出彻底完成即立即返回用户空间的非阻塞模式。
10.根据权利要求9所述的装置,其特征在于,所述父进程和所述子进程之间通过系统管道通信连接;方法还包括:
响应于所述子进程执行命令脚本或运行临时进程而向所述父进程发出推送信号;
响应于所述父进程接收到所述推送信号而从所述系统管道读取数据。
CN202010789175.0A 2020-08-07 2020-08-07 一种基于子进程的多控制器系统的运转方法和装置 Pending CN111984446A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010789175.0A CN111984446A (zh) 2020-08-07 2020-08-07 一种基于子进程的多控制器系统的运转方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010789175.0A CN111984446A (zh) 2020-08-07 2020-08-07 一种基于子进程的多控制器系统的运转方法和装置

Publications (1)

Publication Number Publication Date
CN111984446A true CN111984446A (zh) 2020-11-24

Family

ID=73446182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010789175.0A Pending CN111984446A (zh) 2020-08-07 2020-08-07 一种基于子进程的多控制器系统的运转方法和装置

Country Status (1)

Country Link
CN (1) CN111984446A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469087A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 元数据输出方法、客户端和元数据服务器
CN107526641A (zh) * 2017-08-28 2017-12-29 青岛海信移动通信技术股份有限公司 一种回收内存的方法及装置
CN109408158A (zh) * 2018-11-06 2019-03-01 恒生电子股份有限公司 子进程随父进程退出的方法及装置、存储介质及电子设备
CN109492145A (zh) * 2018-11-08 2019-03-19 大连瀚闻资讯有限公司 应用于舆情平台的大规模循环爬虫管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469087A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 元数据输出方法、客户端和元数据服务器
CN107526641A (zh) * 2017-08-28 2017-12-29 青岛海信移动通信技术股份有限公司 一种回收内存的方法及装置
CN109408158A (zh) * 2018-11-06 2019-03-01 恒生电子股份有限公司 子进程随父进程退出的方法及装置、存储介质及电子设备
CN109492145A (zh) * 2018-11-08 2019-03-19 大连瀚闻资讯有限公司 应用于舆情平台的大规模循环爬虫管理方法

Similar Documents

Publication Publication Date Title
US7600153B2 (en) Adaptive recovery from system failure for application instances that govern message transactions
CN112835688A (zh) 分布式事务处理方法、设备及存储介质
CN104104705B (zh) 分布式存储系统的接入方法和设备
CN112965901A (zh) Api的测试方法、服务器、系统以及电子设备
CN110716845A (zh) 一种Android系统的日志信息读取的方法
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
CN111768303A (zh) 交易处理方法、装置、设备及系统
CN111049913B (zh) 数据文件的传输方法及装置、存储介质、电子设备
CN108829498B (zh) 业务数据访问方法和装置
CN111142975B (zh) 状态机持久化方法及状态机持久化系统
CN116483517B (zh) 虚拟机控制方法、装置及系统
CN111984446A (zh) 一种基于子进程的多控制器系统的运转方法和装置
CN115145381A (zh) 一种远程重置bmc芯片的方法、系统、存储介质及设备
CN111433738A (zh) 控制器事件队列
CN111580938B (zh) 一种工作单元的事务处理方法、装置、设备及介质
CN112711602B (zh) 一种存储过程的运行方法、装置,数据库系统及存储介质
CN110417899B (zh) 主机与平台服务器的通讯方法及系统
CN110109747B (zh) 基于Apache Spark的数据交换方法及系统、服务器
CN109144415B (zh) 节点检测方法及共享存储装置
CN113986403A (zh) 一种状态机运转方法、装置、计算机设备及存储介质
CN112286572A (zh) 一种业务流程的配置方法及装置
CN108023966B (zh) 通用网关接口请求处理方法、设备和存储介质
CN108255667B (zh) 一种业务监测方法、装置以及电子设备
CN114356610A (zh) 接口调用的控制方法、装置、设备及存储介质
CN115344410B (zh) 判断事件执行顺序的方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20201124