CN116991596B - 一种进程保活处理方法和*** - Google Patents
一种进程保活处理方法和*** Download PDFInfo
- Publication number
- CN116991596B CN116991596B CN202311264393.2A CN202311264393A CN116991596B CN 116991596 B CN116991596 B CN 116991596B CN 202311264393 A CN202311264393 A CN 202311264393A CN 116991596 B CN116991596 B CN 116991596B
- Authority
- CN
- China
- Prior art keywords
- information
- monitored
- period
- shared memory
- identification information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 250
- 230000008569 process Effects 0.000 title claims abstract description 233
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 230000008859 change Effects 0.000 claims abstract description 15
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000007717 exclusion Effects 0.000 abstract description 22
- 230000006870 function Effects 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种进程保活处理方法和***,该方法包括:按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;在当前周期遍历共享内存中的过程中,获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;如果没有发生变化,则对所述被监控进程进行保活。通过本申请解决了相关技术中在使用互斥锁时进程容易导致死锁从而影响软件功能的问题,从而能够对进程进行保护,提高了进程运行稳定性。
Description
技术领域
本申请涉及到计算机领域,具体而言,涉及一种进程保活处理方法和***。
背景技术
互斥锁(Mutual Exclusion,简称为Mutex)是一种用于多线程(或者进程,以下以线程为例进行说明)编程的同步机制。它可以保证在任意时刻只有一个线程能够访问共享资源,从而避免了多个线程同时对共享资源进行写操作导致的数据不一致问题。互斥锁在并发编程中扮演着重要的角色,确保了线程之间的互斥执行。互斥锁是一种用于保护共享资源的机制,它通过限制同时访问共享资源的线程数量来实现互斥。当某个线程获取到互斥锁后,其他线程需要等待该线程释放锁才能继续访问共享资源。这样就确保了在任意时刻只有一个线程能够对共享资源进行操作,避免了数据竞争和不一致的问题。
互斥锁常常与临界区(Critical Section)结合使用。临界区指的是一段代码,其中包含对共享资源的操作。通过将临界区的代码块用互斥锁保护起来,可以确保同一时间只有一个线程能够进入该代码块,从而保证了共享资源的安全性。
互斥锁的工作原理涉及到两个关键操作:加锁(Lock)和解锁(Unlock)。当一个线程希望进入临界区时,它首先会尝试获取互斥锁。如果当前没有其他线程持有该锁,那么该线程获取锁成功并可以进入临界区执行操作。反之,如果有其他线程已经持有锁,那么该线程将被阻塞,等待锁的释放。
在某个线程持有锁并进入临界区后,其他线程对于同一个锁的获取操作将会被阻塞,直到持有锁的线程释放锁。一旦持有锁的线程完成了对共享资源的操作,并释放了锁,等待的线程中的一个将会获取到锁,继续执行临界区的代码。
互斥锁的实现依赖于底层操作***提供的原子指令或者基本的同步原语。常见的互斥锁的实现方式包括自旋锁、互斥量(Mutex)、信号量(Semaphore)等。
读写锁也可以理解为互斥锁的特殊情况,读操作可以多进程同时进行,但是写操作采用互斥的方式进行,基本原理与互斥锁原理类似。
在实际软件工作时,用到读写锁、互斥锁的进程或线程,容易出现死锁,从而会导致进程或者线程的锁死。
发明内容
本申请实施例提供了一种进程保活处理方法和***,以至少解决相关技术中在使用互斥锁时进程容易导致死锁从而影响软件功能的问题。
根据本申请的一个方面,提供了一种进程保活处理方法,包括:按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;在当前周期遍历共享内存中的过程中,获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;如果没有发生变化,则对所述被监控进程进行保活。
进一步地,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
进一步地,对所述监控进程进行保活包括:将所述被监控进程杀掉,然后重新启动所述被监控进程。
进一步地,在所述共享内存中的被监控进程按照其对应的周期递增计数的情况下,判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化包括:判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
根据本申请的另一个方面,还提供了一种进程保活处理***,包括:遍历模块,用于按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;获取模块,在当前周期遍历共享内存中的过程中,用于获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;判断模块,用于判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;保活模块,用于在所述计数信息没有发生变化的情况下,对所述被监控进程进行保活。
进一步地,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
进一步地,所述保活模块,用于将所述被监控进程杀掉,然后重新启动所述被监控进程。
进一步地,在所述共享内存中的被监控进程按照其对应的周期递增计数的情况下,所述判断模块用于:判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时上述的方法步骤。
在本申请实施例中,采用了按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;在当前周期遍历共享内存中的过程中,获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;如果没有发生变化,则对所述被监控进程进行保活。通过本申请解决了相关技术中在使用互斥锁时进程容易导致死锁从而影响软件功能的问题,从而能够对进程进行保护,提高了进程运行稳定性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的进程保活处理方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在以下实施方式中使用了共享内存,下面首先对共享内存进行说明。共享内存指(shared memory))在多处理器的计算机***中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。这里使用的是处理器进行说明的,不同进程之间也可以使用共享内存,这样共享内存中的数据均能够被这些不同的进程进行读取或者写入。
互斥锁在多线程编程中起着重要的作用,具有以下几个方面的作用:
保护共享资源:互斥锁用于保护临界区,确保同一时间只有一个线程能够访问共享资源。这样可以避免多个线程同时对共享资源进行写操作导致的数据不一致问题。
解决竞态条件:竞态条件是指多个线程以不确定的顺序访问共享资源,从而导致结果的不确定性。通过使用互斥锁,可以防止多个线程在同一时刻进入临界区,消除了竞态条件,确保程序的可靠性和稳定性。
实现线程同步:互斥锁可以实现线程之间的同步,确保线程按照预期的顺序执行。通过加锁和解锁操作,可以控制线程的执行顺序,避免出现并发访问共享资源时的数据竞争和不一致性问题。
防止死锁:互斥锁在设计上可以避免死锁的发生。当一个线程持有锁时,如果其他线程试图获取同一个锁而被阻塞,那么该线程不会进入死锁状态,它仍然可以继续执行其他操作或等待其他资源的释放,避免了整个***的停滞。
提高***性能:尽管互斥锁会引入一定的开销(如加锁和解锁的操作),但它可以有效地减少多线程并发访问共享资源所带来的错误和冲突。通过合理地使用互斥锁,可以优化***的性能,提高并发程序的运行效率。
考虑到在使用互斥锁或者读写锁的时候容易出现死锁的问题,作为一种解决方式,可以对进程或者线程(以下以进程为例进行说明)进行保活,当异常时为保证业务的联通性要及时将进程拉起。保活可以通过心跳消息来进行,被保活的进程(即被监控的进程程序)可以向监督进程发送心跳信号,如果监督进程(或称为监控进程或者监控程序)连续的预定数量个心跳信号均没有接收到,则认为被保活的进程需要重新启动,此时则将该被保活的进程拉起。
除了使用心跳信号之外,还可以提供了另一种实施方式,图1是根据本申请实施例的进程保活处理方法的流程图,如图1所示,下面对该图1中涉及到的方法所包括的步骤进行说明。
步骤S102,按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新。
作为一个可选的实施方式,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
作为一种可以增加的实施方式,获取在共享内存中保存进程信息的进程对应的优先级,根据不同的优先级来设置每个进程对应的更新进程信息的周期,其中,优先级越高的进程,其更新进程信息的周期越短;获取所有进程中最短和第二短的更新进程信息的周期,将遍历所述共享内存的周期配置成大于最短更新进程信息的周期和小于第二短的更新进程信息的周期。
在使用预定周期进程共享内存遍历的时候,确定每个进程经过多少个预定周期才会更新进程信息,并按照每个进程更新进程信息所需要的预定周期的个数对每个进程进行保活。
步骤S104,在当前周期遍历共享内存中的过程中,获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息。
步骤S106,判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化。
步骤S108,如果没有发生变化,则对所述被监控进程进行保活。
作为一个可以增加的实施方式,如果没有发生变化,则确定所述被监控进程为待保活进程,获取所述被监控进程的单位时间的数据获取量,其中,所述单位时间的数据获取量是对历史上被监控进程所获取到的数据量进行统计得到的;从当前时间点开始获取在单位时间内的所述被监控进程接收到的数据量,如果所述被监控进程接收到的数据量小于统计得到的所述单位时间内的数据获取量,则确定对所述被监控进程保活;否则,维持所述被监控进程的正常工作。
通过上述步骤解决了相关技术中在使用互斥锁时进程容易导致死锁从而影响软件功能的问题,从而能够对进程进行保护,提高了进程运行稳定性。
作为一个可选实施方式,对所述被监控进程进行保活的方式可以有很多种,例如,对所述监控进程进行保活包括:将所述被监控进程杀掉,然后重新启动所述被监控进程。
作为一个可以增加的实施方式,将所述被监控进程杀掉包括:获取被监控的所有进程中的每个进程的名称、标识信息和进程参数;并对所述进程的名称、标识信息和进程参数进行哈希运算得到第一校验值,并将每个监控进程对应的第一校验值保存在共享内存中;在确定所述被监控进程需要被杀掉的情况下,根据所述被监控进程的名称、标识信息和进程参数进行哈希运算得到第二校验值,在所述第二校验值和所述第一校验值相同时,杀掉所述被监控进程。
作为一个可选实施方式,所述共享内存中的被监控进程按照其对应的周期递增计数。判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
作为另一个可以增加的实施方式,在第一被监控进程依赖于第二被监控进程的监控结果时,如果所述第二被监控进程工作正常,则即使所述第一被监控进程在遍历内存的预定周期没有出现计数信息的变化,则确定所述第二被监控进程工作正常。
下面结合一个例子进行说明,在该例子中,采用了共享内存来进行进程(或称为进程程序)通信,当多个进程进行通信时,通过将进行程序的信息写入共享内存,对程序进程保活。
为了快速遍历,在共享内存中,以进程号为索引,存储进程信息,被监控的进程程序,定时更新进程计数到共享内存,监控程序(或者监控进程)定时遍历共享内存,如果程序在指定时间内没有更新,则认为进程异常,重启进程。此外,为了避免pid(进程的标识信息)复用导致的误杀,需要对进程名以及所有参数信息做哈希hash,记录到共享内存中,当进程异常被杀掉前,需要做hash校验,确保程序不被误杀。
为了保证软件***正常运行,需要增加监控保活进程。在以下实施方式提供了一种保活程序框架。
所有模块(即软件中的功能模块,可以理解每个模块均有一个或多个进程或者线程来提供服务)提供检查和恢复功能,并通过配置来确定监控内容和顺序,从而实现一种动态(可插拔)检查的能力。在监控程序启动后,会加载配置信息,而需要检查的模块初始化该模块的处理函数。此外,约定各个模块定义检查桩子,例如计数器方式,放入共享内存,当两次检查发生变化时,认为该模块正常。如果发生异常时,当调用该模块的恢复函数,尝试对此模块做恢复。
基于上述基础,定义了一些检查方法框架:
1、基于计数器检查,功能模块在运转的各个阶段,变更不同的计数器,当每次周期发生变化,认为模块正常,否则尝试N次后,认为模块异常,触发恢复逻辑。
2、对B模块的检查依赖A模块的情况,需要在配置的时候,定义依赖关系。检查,当A正常时,但是没有业务数据流转到B模块,则仍然认为B模块正常。
例如,在第一被监控进程依赖于第二被监控进程的监控结果时,如果所述第二被监控进程工作正常,则即使所述第一被监控进程在遍历内存的预定周期没有出现计数信息的变化,则确定所述第二被监控进程工作正常。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
该本实施例中就提供了这样的一种装置或***。该***被称为一种进程保活处理***,包括:遍历模块,用于按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;获取模块,在当前周期遍历共享内存中的过程中,用于获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;判断模块,用于判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;保活模块,用于在所述计数信息没有发生变化的情况下,对所述被监控进程进行保活。
该***或者装置用于实现上述的实施例中的方法的功能,该***或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
可选地,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
可选地,所述保活模块,用于将所述被监控进程杀掉,然后重新启动所述被监控进程。
可选地,在所述共享内存中的被监控进程按照其对应的周期递增计数的情况下,所述判断模块用于:判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
通过上述实施方式解决了相关技术中在使用互斥锁时进程容易导致死锁从而影响软件功能的问题,从而能够对进程进行保护,提高了进程运行稳定性。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种进程保活处理方法,其特征在于,包括:
按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;
在当前周期遍历共享内存中的过程中,获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;
判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;
如果没有发生变化,则对所述被监控进程进行保活;其中,对所述监控进程进行保活包括:将所述被监控进程杀掉,然后重新启动所述被监控进程;其中,将所述被监控进程杀掉包括:获取被监控的所有进程中的每个进程的名称、标识信息和进程参数;并对所述进程的名称、标识信息和进程参数进行哈希运算得到第一校验值,并将每个监控进程对应的第一校验值保存在共享内存中;在确定所述被监控进程需要被杀掉的情况下,根据所述被监控进程的名称、标识信息和进程参数进行哈希运算得到第二校验值,在所述第二校验值和所述第一校验值相同时,杀掉所述被监控进程。
2.根据权利要求1所述的方法,其特征在于,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
3.根据权利要求1所述的方法,其特征在于,在所述共享内存中的被监控进程按照其对应的周期递增计数的情况下,判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化包括:
判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;
在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
4.一种进程保活处理***,其特征在于,包括:
遍历模块,用于按照预定周期遍历共享内存,其中,所述共享内存中保存有进程的信息;所述进程信息包括:所述进程的标识信息和所述进程的计数信息,所述计数信息被所述进程信息周期性更新;
获取模块,在当前周期遍历共享内存中的过程中,用于获取所述共享内存中的被监控进程的标识信息和该标识信息对应的计数信息;
判断模块,用于判断所述被监控的标识信息对应的计数信息与之前周期中获取到的计数信息是否发生变化;
保活模块,用于在所述计数信息没有发生变化的情况下,对所述被监控进程进行保活;其中,对所述监控进程进行保活包括:将所述被监控进程杀掉,然后重新启动所述被监控进程;其中,将所述被监控进程杀掉包括:获取被监控的所有进程中的每个进程的名称、标识信息和进程参数;并对所述进程的名称、标识信息和进程参数进行哈希运算得到第一校验值,并将每个监控进程对应的第一校验值保存在共享内存中;在确定所述被监控进程需要被杀掉的情况下,根据所述被监控进程的名称、标识信息和进程参数进行哈希运算得到第二校验值,在所述第二校验值和所述第一校验值相同时,杀掉所述被监控进程。
5.根据权利要求4所述的***,其特征在于,遍历共享内存的周期可以与进程信息更新的周期相同或者不相同,如果遍历共享内存的周期与进程信息更新的周期不相同,则遍历共享内存的周期大于所述进程信息更新的周期。
6.根据权利要求4所述的***,其特征在于,在所述共享内存中的被监控进程按照其对应的周期递增计数的情况下,所述判断模块用于:
判断所述被监控的标识信息对应的计数值是否大于之前周期中获取到的计数的数值,如果大于,则确定所述计数信息发生变化;
在所述被监控进程被杀掉并重新启动之后,将所述计数信息中的数值归零并重新开始递增。
7.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至3任一项所述的方法步骤。
8.一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1至3任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311264393.2A CN116991596B (zh) | 2023-09-28 | 2023-09-28 | 一种进程保活处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311264393.2A CN116991596B (zh) | 2023-09-28 | 2023-09-28 | 一种进程保活处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991596A CN116991596A (zh) | 2023-11-03 |
CN116991596B true CN116991596B (zh) | 2023-12-26 |
Family
ID=88528721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311264393.2A Active CN116991596B (zh) | 2023-09-28 | 2023-09-28 | 一种进程保活处理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991596B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127034A (zh) * | 2016-06-17 | 2016-11-16 | 北京金山安全软件有限公司 | 一种防止***被恶意关闭的方法、装置及电子设备 |
CN107783844A (zh) * | 2017-10-13 | 2018-03-09 | 锐捷网络股份有限公司 | 一种计算机程序运行异常检测方法、装置和介质 |
CN115509861A (zh) * | 2022-09-30 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 进程监控方法、***、计算机设备和存储介质 |
CN115543740A (zh) * | 2022-09-29 | 2022-12-30 | 长沙威富通技术服务有限公司 | 业务运行异常监控方法、***、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263061B2 (en) * | 2020-02-24 | 2022-03-01 | Microsoft Technology Licensing, Llc | Efficient and scalable use of shared resources |
-
2023
- 2023-09-28 CN CN202311264393.2A patent/CN116991596B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127034A (zh) * | 2016-06-17 | 2016-11-16 | 北京金山安全软件有限公司 | 一种防止***被恶意关闭的方法、装置及电子设备 |
CN107783844A (zh) * | 2017-10-13 | 2018-03-09 | 锐捷网络股份有限公司 | 一种计算机程序运行异常检测方法、装置和介质 |
CN115543740A (zh) * | 2022-09-29 | 2022-12-30 | 长沙威富通技术服务有限公司 | 业务运行异常监控方法、***、设备及存储介质 |
CN115509861A (zh) * | 2022-09-30 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 进程监控方法、***、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116991596A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thomson et al. | The case for determinism in database systems | |
US9207997B2 (en) | Multithreaded lock management | |
US8020160B2 (en) | User-level read-copy update that does not require disabling preemption or signal handling | |
JP5270268B2 (ja) | 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体 | |
US9183043B2 (en) | Systems and methods for adaptive integration of hardware and software lock elision techniques | |
US8997110B2 (en) | Resolving RCU-scheduler deadlocks | |
US9658900B2 (en) | Reentrant read-write lock algorithm | |
US9218307B2 (en) | Reader-writer synchronization with high-performance readers and low-latency writers | |
US20090006403A1 (en) | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes | |
US11594252B2 (en) | Reader bias based locking technique enabling high read concurrency for read-mostly workloads | |
US9830200B2 (en) | Busy lock and a passive lock for embedded load management | |
US20230004367A1 (en) | Low-overhead detection techniques for synchronization problems in parallel and concurrent software | |
CN113220535A (zh) | 程序异常的处理方法、装置、设备及存储介质 | |
CN116991596B (zh) | 一种进程保活处理方法和*** | |
CN114461409A (zh) | 一种互斥信号量异常阻塞辅助分析方法、***及存储介质 | |
Wamhoff et al. | RobuSTM: A robust software transactional memory | |
CN112181617A (zh) | 一种基于特定索引结构的高效调度算法 | |
WO2019134747A1 (en) | Deadlock detection and prevention | |
Fleisz | A Cross-Platform Multithreading Framework | |
SINHA et al. | DETECTION OF CERTAIN FALSE DATA RACES FROM RUNTIME TRACES | |
JPH0424863A (ja) | 情報処理システム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |