CN110955539A - 进程退出方法、装置、电子设备及机器可读存储介质 - Google Patents
进程退出方法、装置、电子设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN110955539A CN110955539A CN201911172303.0A CN201911172303A CN110955539A CN 110955539 A CN110955539 A CN 110955539A CN 201911172303 A CN201911172303 A CN 201911172303A CN 110955539 A CN110955539 A CN 110955539A
- Authority
- CN
- China
- Prior art keywords
- signal
- database
- business process
- data
- business
- 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
Links
Images
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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种进程退出方法、装置、电子设备及机器可读存储介质。在本申请中,业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出,避免了原有的强制业务进程退出时导致的数据库损坏,保证了数据完整性和一致性。
Description
技术领域
本申请涉及通信技术领域、操作系统技术领域,尤其涉及进程退出方法、装置、电子设备及机器可读存储介质。
背景技术
进程是操作系统中的程序在某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的基本单位。程序是进程所对应的指令、数据及其组织形式的静态描述,而进程是程序对应的动态执行实体。
IPC(Interprocess communication,进程间通信)是一种操作系统提供的通信机制。程序开发人员基于IPC编写开发程序,可以实现协调在操作系统中运行的不同进程之间,能够相互传递或交换信息。
而进程间的信号通信机制,是Linux/UNIX下的一种经典的IPC通信方式。在实现,如果进程捕捉了某种信号,进程在收到信号之前执行自己的代码;收到信号后,不管执行到程序的什么位置都要暂停运行,去处理信号,处理完毕再继续执行。
发明内容
本申请提供一种进程退出方法,所述方法应用于网络设备,所述网络设备运行有访问数据库的业务进程,所述方法包括:
业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;
业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;
接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
可选的,所述网络设备为基于Linux系统构建,所述业务进程为Linux进程;所述第一信号为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
可选的,所述业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理,包括:
检查数据库是否存在缓存数据;若是,则进一步,检查所述缓存数据中是否存在数据库的事务数据;
若所述缓存数据中存在数据库的事务数据,则基于所述缓存数据的事务数据对数据库进行事务回滚;
断开访问数据库的数据连接,以使业务进程关闭数据库。
可选的,所述第二信号为业务进程无法捕获或无法忽略的SIGKILL信号;所述网络设备还运行有Linux内核进程;
所述接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出,包括:
Linux内核进程接收并响应于SIGKILL信号,强制释放业务进程的进程资源,以使业务进程被强制进程退出。
本申请还提供一种进程退出装置,所述装置应用于网络设备,所述网络设备运行有访问数据库的业务进程,所述装置包括:
捕捉模块,业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;
清理模块,业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;
退出模块,接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
可选的,所述网络设备为基于Linux系统构建,所述业务进程为Linux进程;所述第一信号为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
可选的,所述清理模块进一步:
检查数据库是否存在缓存数据;若是,则进一步,检查所述缓存数据中是否存在数据库的事务数据;
若所述缓存数据中存在数据库的事务数据,则基于所述缓存数据的事务数据对数据库进行事务回滚;
断开访问数据库的数据连接,以使业务进程关闭数据库。
可选的,所述第二信号为业务进程无法捕获或无法忽略的SIGKILL信号;所述网络设备还运行有Linux内核进程;
所述退出模块进一步:
Linux内核进程接收并响应于SIGKILL信号,强制释放业务进程的进程资源,以使业务进程被强制进程退出。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于业务进程预先捕捉到指示该业务进程的数据库进行数据清理的第一信号,并由业务进程提前进行数据库清理;以及,响应于业务进程被强制退出的第二信号并对业务进程执行强制进程退出,避免了原有的强制业务进程退出时导致的数据库损坏,保证了数据完整性和一致性。
附图说明
图1是一示例性实施例提供的一种进程退出方法的流程图;
图2是一示例性实施例提供的一种进程退出时的清理数据库的流程图;
图3是一示例性实施例提供的一种进程退出装置的框图;
图4是一示例性实施例提供的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的进程退出的相关技术,进行简要说明。
在一些场景下,基于Linux系统构建的网络设备中,网络设备运行有进行网络转发的若干业务进程。当网络设备需要关机或重启时,就需要网络设备基于Linux系统来实现了实现关闭或重启该若干业务进程。通常情况下,可以通过使用kill或killall命令发送SIGKILL信号给该若干业务进程,使正在运行的业务进程强制退出。然而SIGKILL信号不能够被业务进程捕获,因此,可能发生业务进程还在进行数据处理过程中被强制退出而导致的数据完整性及一致性的故障。
例如,当一个业务进程正在执行数据库的写操作时,在接收到SIGKILL信号后会立即退出,而该写操作的部分数据在网络设备的缓存中,写已存储到数据库中,被强制退出会导致缓存中数据丢失,数据库中数据不完整并较大概率出现数据库损坏的问题。
而本申请旨在提出一种,基于业务进程预先捕捉到指示该业务进程的数据库进行数据清理的第一信号,并由业务进程提前进行数据库清理的进程退出的技术方案。
在实现时,网络设备运行有基于数据库的业务进程;业务进程等待捕捉第一信号;其中,第一信号指示业务进程启动数据库的数据清理;收并响应于捕捉到的第一信号,对数据库进行数据清理。
进一步地,网络设备接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
在以上方案中,基于业务进程预先捕捉到指示该业务进程的数据库进行数据清理的第一信号,并由业务进程提前进行数据库清理;以及,响应于业务进程被强制退出的第二信号并对业务进程执行强制进程退出,避免了原有的强制业务进程退出时导致的数据库损坏,保证了数据完整性和一致性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种进程退出方法的流程图,所述方法应用于网络设备,所述网络设备运行有访问数据库的业务进程,上述方法执行以下步骤:
步骤102、业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号。
步骤104、业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理。
步骤106、接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
在本说明书中,上述网络设备,可以包括基于Linux系统构建的任何形式的网络设备。
例如,在实际应用中,上述网络设备可以包括基于Linux系统构建的交换机、路由器、防火墙、负载均衡器等。
在本说明书中,上述业务进程,可以包括运行与上述网络设备上的、可访问数据库的任何业务的进程。
例如,在实际应用中,上述业务进程可以包括运行与上述网络设备上的、可访问数据库的进行OSI(Open System Interconnection、开放式系统互联)模型的2至7层对应的网络业务处理的Linux进程。
需要说明的是,上述业务进程可访问的数据库可以是关系数据库或关系数据库,上述数据库的具体类型和访问方式,在本说明书中,不作具体限定。
在本说明书中,上述第一信号,是指触发上述业务进程预先启动数据库的数据清理的信号。
在示出的一种实施方式中,上述第一信号可以为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
为了方便理解,这里简单介绍下SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号。
SIGTERM信号为Linux系统中的用于控制进程正常退出的系统信号。通常情况下,收到SIGTERM信号的进程,默认处理是该进程执行进程正常退出。
SIGUSR1信号和SIGUSR2信号为Linux系统中可用户自定义的信号。在实现时,用户可以分别为SIGUSR1信号和SIGUSR2信号自定义对应的信号处理函数,由信号处理函数进行对应信号的业务处理。
通常情况下,而当SIGUSR1信号和SIGUSR2信号分别对应的信号处理处理函数没有定义时,默认收到SIGUSR1信号或SIGUSR2信号的进程,进行的默认处理是该进程执行进程退出。
SIGURG信号为Linux系统中通知进程已经发生一个紧急情况的带外数据处理的信号;
其中,“带外数据处理”,是指用于迅速告知对方本端发生的重要的事件。它比普通的数据(带内数据)拥有更高的优先级,不论发送缓冲区中是否有排队等待发送的数据,它总是被立即发送。带外数据的传输可以使用一条独立的传输层连接,也可以映射到传输普通数据的连接中。实际应用中,带外数据是使用很少见,使用SIGURG信号的应用有telnet和ftp等。
需要说明的是,为了防止上述业务进程接收到SIGTERM信号而影响可能正在对上述数据库的业务操作,通常在上述业务进程的静态编程实现中,可以调用sigaddset函数及sigprocmask函数来屏蔽SIGTERM信号,也即,当启用了针对SIGTERM信号屏蔽的上述业务进程无法接收到SIGTERM信号进行进程退出操作,或者接收到SIGTERM信号而不去执行默认的进程退出操作。由此,在示出的一种的实施方式中,可以基于SIGUSR1信号或SIGUSR2信号或SIGURG信号,预先在上述业务进程的静态编程实现中对应信号的信号处理函数,以使上述业务进程在运行时,当接收到SIGUSR1信号或SIGUSR2信号或SIGURG信号时,调用与该信号对应的信号处理函数,进行信号业务处理;其中,SIGURG信号及其对应的的信号处理函数,用于在紧急情况下的信号处理。
在本说明书中,上述业务进程等待捕捉上述第一信号。
例如,在实际应用中,上述业务进程可以通过sigemptyset函数、sigaddset函数及sigaction函数构建捕捉上述第一信号的信号捕捉函数;进一步地,通过定时轮询或阻塞的方式调用该信号捕捉函数,来等待捕获上述第一信号。
在本说明书中,上述业务进程接收并响应于捕捉到的上述第一信号,对数据库进行数据清理。
以上述第一信号为SIGUSR1信号为例,上述业务进程中与SIGUSR1信号的信号处理函数可以包括对上述业务进程访问的上述数据库进行数据清理的若干函数,比如:该若干函数可以包括单个数据库打开函数、数据库执行SQL语句函数、单个数据库关闭函数、所有数据库关闭函数;
其中,单个数据库打开函数接口,具体可以包括:打开数据库获取数据库连接句柄,同时初始化数据库缓冲区信息(用于记录进程或当前进程的全部线程打开数据库的具体情况,包括数据库连接句柄、打开数据库名称、事务开启情况),并将数据库连接句柄赋给数据库缓冲区的数据库连接句柄,打开的数据库名称赋给数据库缓冲区的打开数据库名称;
数据库执行SQL语句函数,可以包括对数据库事务的处理,具体可以包括:在执行第一条SQL语句对应的该SQL语句执行成功后的将缓冲区的数据更新至数据库后的过程标记为事务开启;在执行最后一条SQL语句并提交事务或者回滚事务的对应执行成功后的过程标记为事务结束。需要说明的是,数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。具体请参见数据库事务的技术说明,这里不再赘述。
单个数据库关闭函数,用于关闭上述业务进程访问数据库的连接句柄,同时清理数据库缓冲区信息。所有数据库关闭函数,用于关闭数据库缓冲区中的全部未关闭多个数据库。如果未关闭的数据库连接句柄为事务开启状态,则先执行回滚事务,以此避免下一次事务开启时,写操作正在进行时直接提交事务出现数据库中数据不完整问题,再关闭数据库。
在示出的一种实施方式中,在接收并响应于捕捉到的上述第一信号并对上述业务进程访问的数据库进行数据清理的过程中,上述业务进程检查上述数据库是否存在缓存数据。
接着以上示例继续举例,在接收并响应于捕捉到的SIGUSR1信号并对上述业务进程访问的数据库进行数据清理的过程中,通过调用上述单个数据库打开函数接口,上述业务进程检查上述数据库的数据库缓冲区信息是否存在上述业务进程的线程打开该数据库的具体信息,比如:该具体信息可以包括数据库连接句柄、打开数据库名称、事务是否开启。
在本说明书中,若是,则进一步,检查上述缓存数据中是否存在数据库的事务数据,若上述缓存数据中存在数据库的事务数据,则基于上述缓存数据的事务数据对数据库进行事务回滚。
接着以上示例继续举例,在确定上述数据库存在上述缓存数据后,进一步,上述业务进程检查上述缓存数据中是否存在数据库的事务数据;若上述缓存数据中存在数据库的事务数据,则基于上述缓存数据的事务数据,调用上述数据库执行SQL语句函数对数据库进行事务回滚;比如,数据库的事务回滚可以将数据库的数据恢复至标记为事务开始前的状态,具体请参见数据库的事务回滚的技术说明,这里不再赘述。
当然,在实际应用中,上述数据库也可以未启用事务机制,也即,上述数据库的缓存数据中不存在事务数据。
在本说明书中,进一步地,上述业务进程断开访问数据库的数据连接,以使业务进程关闭数据库。
接着以上示例继续举例,进一步地,通过调用上述单个数据库关闭函数或所有数据库关闭函数,上述业务进程将数据库的缓存数据保存至数据库后,再断开访问个数据库的数据连接,以使业务进程关闭数据库。
当然,在实际应用中,上述业务进程还可以在触发数据库的数据清理后,进行睡眠等待预设的时间(比如:50毫秒),以保证数据库的数据清理完成。由此,通过基于上述业务进程预先捕捉到指示该业务进程的数据库进行数据清理的上述第一信号,并由业务进程提前进行数据库清理,避免了原有的强制业务进程退出时导致的数据库损坏,保证了数据完整性和一致性。
请参考图2,图2是本申请一实施例提供的一种进程退出时的清理数据库的流程图。
图2为以上步骤102-104所示出的进程退出时的清理数据库的实施例对应过程的示意。
如图2所示,上述业务进程在“捕捉到清理数据库的信号”后,先判断“是否存在未关闭数据库”;若为“N”,则直接跳转到“清理结束”,若为“Y”,则进一步判断未关闭数据库的“是否存在事务”;若为“N”,则直接跳转到“关闭数据库”;若为“Y”,则进一步判断“是否存在其它未关闭数据库”,若为“N”,则直接跳转到“清理结束”,若为“Y”,则跳转到“是否存在未关闭数据库”,重复进行对单个数据库的清理过程,直至所有数据库都完成清理。
在本说明书中,上述第二信号,是指对上述业务进程执行强制进程退出的、并且无法被上述业务进程捕获或无法忽略的信号。
在示出的一种实施方式中,上述第二信号为SIGKILL信号;其中,SIGKILL信号是不能拦截的,上述业务进程接到该信号之后会马上退出,并没有机会进行现场清理,比如包括对子进程、线程的关闭等操作。
在示出的一种实施方式中,上述网络设备除运行有上述业务进程外,还运行有Linux内核进程,在上述网络设备接收并响应于上述第二信号,并对业务进程执行强制进程退出的过程中,由上述Linux内核进程接收并响应于SIGKILL信号,强制释放上述业务进程的进程资源,以使业务进程被强制进程退出。
例如,在实际应用中,当用户在上述网络设备执行reboot命令(设备重启)或者poweroff命令(设备关机)时,或者用户通过上述网络设备的命令行发送“kill-9pid”(pid为上述业务进程为单个进程时的该进程的进程ID的示例)或“killall-9pid1 pid2”(pid1、pid2为上述业务进程包括多个进程时的该进程的多个进程ID的示例)时,上述网络设备基于运行的上述Linux内核进程接收并响应于以上reboot命令或者poweroff命令或kill-9pid命令所触发的SIGKILL信号,响应于SIGKILL信号强制释放上述业务进程的进程资源,以使业务进程被强制进程退出。
当然,在实际应用中,上述Linux内核进程在对上述业务进程执行强制进程退出后,还可以进行睡眠等待预设的时间(比如:50毫秒),以保证上述业务进程的资源完成释放。
在以上技术方案中,基于业务进程预先捕捉到指示该业务进程的数据库进行数据清理的第一信号,并由业务进程提前进行数据库清理;以及,响应于业务进程被强制退出的第二信号并对业务进程执行强制进程退出,避免了原有的强制业务进程退出时导致的数据库损坏,保证了数据完整性和一致性。
图3是本申请一示例性实施例提供的一种进程退出装置的框图。与上述方法实施例相对应,本申请还提供了一种进程退出装置的实施例,所述装置应用于网络设备,请参考图3所示例的一种进程退出装置30,所述装置包括:
捕捉模块301,业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;
清理模块302,业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;
退出模块303,接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
在本实施例中,所述网络设备为基于Linux系统构建,所述业务进程为Linux进程;所述第一信号为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
在本实施例中,所述清理模块302进一步:
检查数据库是否存在缓存数据;若是,则进一步,检查所述缓存数据中是否存在数据库的事务数据;
若所述缓存数据中存在数据库的事务数据,则基于所述缓存数据的事务数据对数据库进行事务回滚;
断开访问数据库的数据连接,以使业务进程关闭数据库。
在本实施例中,所述第二信号为业务进程无法捕获或无法忽略的SIGKILL信号;所述网络设备还运行有Linux内核进程;
所述退出模块303进一步:
Linux内核进程接收并响应于SIGKILL信号,强制释放业务进程的进程资源,以使业务进程被强制进程退出。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本申请的进程退出装置的实施例可以应用在图4所示的电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将机器可读存储介质中对应的计算机程序指令读取后运行形成的机器可执行指令。从硬件层面而言,如图4所示,为本申请的进程退出装置所在电子设备的一种硬件结构图,除了图4所示的处理器、通信接口、总线以及机器可读存储介质之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
对应地,本申请实施例还提供了图3所示装置的一种电子设备的硬件结构,请参见图4,图4为本申请实施例提供的一种电子设备的硬件结构示意图。该设备包含:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402、机器可读存储介质403通过总线404完成相互间的通信。其中,通信接口401,用于进行网络通信。处理器402可以是一个中央处理器(CPU),处理器402可以执行机器可读存储介质403中存储的机器可读指令,以实现以上描述的方法。
本文中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图4所示的硬件结构描述。
此外,本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图4中的机器可读机器可读存储介质403,所述机器可执行指令可由数据处理装置中的处理器402执行以实现以上描述的数据处理方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种进程退出方法,其特征在于,所述方法应用于网络设备,所述网络设备运行有访问数据库的业务进程,所述方法包括:
业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;
业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;
接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
2.根据权利要求1所述的方法,其特征在于,所述网络设备为基于Linux系统构建,所述业务进程为Linux进程;所述第一信号为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
3.根据权利要求1所述的方法,其特征在于,所述业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理,包括:
检查数据库是否存在缓存数据;若是,则进一步,检查所述缓存数据中是否存在数据库的事务数据;
若所述缓存数据中存在数据库的事务数据,则基于所述缓存数据的事务数据对数据库进行事务回滚;
断开访问数据库的数据连接,以使业务进程关闭数据库。
4.根据权利要求1所述的方法,其特征在于,所述第二信号为业务进程无法捕获或无法忽略的SIGKILL信号;所述网络设备还运行有Linux内核进程;
所述接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出,包括:
Linux内核进程接收并响应于SIGKILL信号,强制释放业务进程的进程资源,以使业务进程被强制进程退出。
5.一种进程退出装置,其特征在于,所述装置应用于网络设备,所述网络设备运行有访问数据库的业务进程,所述装置包括:
捕捉模块,业务进程等待捕捉第一信号;其中,所述第一信号为触发业务进程预先启动数据库的数据清理的信号;
清理模块,业务进程接收并响应于捕捉到的所述第一信号,对数据库进行数据清理;
退出模块,接收并响应于指示业务进程强制退出的第二信号,并对业务进程执行强制进程退出。
6.根据权利要求5所述的装置,其特征在于,所述网络设备为基于Linux系统构建,所述业务进程为Linux进程;所述第一信号为SIGUSR1信号、SIGUSR2信号、SIGURG信号、SIGTERM信号中的任意一种。
7.根据权利要求5所述的装置,其特征在于,所述清理模块进一步:
检查数据库是否存在缓存数据;若是,则进一步,检查所述缓存数据中是否存在数据库的事务数据;
若所述缓存数据中存在数据库的事务数据,则基于所述缓存数据的事务数据对数据库进行事务回滚;
断开访问数据库的数据连接,以使业务进程关闭数据库。
8.根据权利要求5所述的装置,其特征在于,所述第二信号为业务进程无法捕获或无法忽略的SIGKILL信号;所述网络设备还运行有Linux内核进程;
所述退出模块进一步:
Linux内核进程接收并响应于SIGKILL信号,强制释放业务进程的进程资源,以使业务进程被强制进程退出。
9.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至4任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911172303.0A CN110955539A (zh) | 2019-11-26 | 2019-11-26 | 进程退出方法、装置、电子设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911172303.0A CN110955539A (zh) | 2019-11-26 | 2019-11-26 | 进程退出方法、装置、电子设备及机器可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955539A true CN110955539A (zh) | 2020-04-03 |
Family
ID=69978588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911172303.0A Pending CN110955539A (zh) | 2019-11-26 | 2019-11-26 | 进程退出方法、装置、电子设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955539A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541619A (zh) * | 2020-04-30 | 2020-08-14 | 中国人民银行清算总中心 | 企业信息联网核查系统的自适应主动负载调节方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728962B1 (en) * | 2000-06-28 | 2004-04-27 | Emc Corporation | Context swapping in multitasking kernel |
US20080098173A1 (en) * | 2006-10-20 | 2008-04-24 | Lakshminarayanan Chidambaran | Consistent client-side cache |
CN102200944A (zh) * | 2011-06-16 | 2011-09-28 | 中国联合网络通信集团有限公司 | Erp系统的测试环境克隆方法及系统 |
CN104252501A (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 一种执行数据库操作命令的计算设备和方法 |
CN109471851A (zh) * | 2018-10-17 | 2019-03-15 | 上海达梦数据库有限公司 | 数据处理方法、装置、服务器和存储介质 |
CN110008224A (zh) * | 2019-03-08 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据库事务处理方法及装置 |
-
2019
- 2019-11-26 CN CN201911172303.0A patent/CN110955539A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728962B1 (en) * | 2000-06-28 | 2004-04-27 | Emc Corporation | Context swapping in multitasking kernel |
US20080098173A1 (en) * | 2006-10-20 | 2008-04-24 | Lakshminarayanan Chidambaran | Consistent client-side cache |
CN102200944A (zh) * | 2011-06-16 | 2011-09-28 | 中国联合网络通信集团有限公司 | Erp系统的测试环境克隆方法及系统 |
CN104252501A (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 一种执行数据库操作命令的计算设备和方法 |
CN109471851A (zh) * | 2018-10-17 | 2019-03-15 | 上海达梦数据库有限公司 | 数据处理方法、装置、服务器和存储介质 |
CN110008224A (zh) * | 2019-03-08 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据库事务处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
李林锋: "Netty 优雅退出机制和原理", pages 1 - 4, Retrieved from the Internet <URL:《https://www.infoq.cn/article/netty-elegant-exit-mechanism-and-principles 》> * |
李林锋: "Netty优雅退出机制和原理", pages 1 - 4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541619A (zh) * | 2020-04-30 | 2020-08-14 | 中国人民银行清算总中心 | 企业信息联网核查系统的自适应主动负载调节方法和装置 |
CN111541619B (zh) * | 2020-04-30 | 2023-05-05 | 中国人民银行清算总中心 | 企业信息联网核查系统的自适应主动负载调节方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103092700B (zh) | 内存清理方法、装置和终端设备 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN101814035B (zh) | 允许快速平台重启的方法和系统 | |
CN112596960B (zh) | 一种分布式存储服务切换方法及装置 | |
CN107450971B (zh) | 任务处理方法及装置 | |
CN109542645A (zh) | 一种调用服务的方法、装置、电子设备及存储介质 | |
CN111427751B (zh) | 基于异步处理机制对业务进行处理的方法及系统 | |
RU2437144C2 (ru) | Способ устранения исключительной ситуации в одном из ядер многоядерной системы | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN109788068B (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
CN113568686B (zh) | Lua语言的异步处理方法、装置、计算机设备和存储介质 | |
CN111383031B (zh) | 一种区块链中的智能合约执行方法、系统和电子设备 | |
CN110413432B (zh) | 一种信息处理方法、电子设备及存储介质 | |
CN111124728B (zh) | 业务自动恢复方法、系统、可读存储介质及服务器 | |
CN111949497B (zh) | 消息队列系统以及基于消息队列系统的消息处理方法 | |
CN106997313B (zh) | 一种应用程序的信号处理方法、系统及终端设备 | |
CN112379993A (zh) | 一种机器人流程自动化处理系统、方法及装置 | |
CN112637284A (zh) | 重做日志的存储方法和装置、电子设备和存储介质 | |
CN110955539A (zh) | 进程退出方法、装置、电子设备及机器可读存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN113590285A (zh) | 一种用于线程池参数动态设置的方法、系统及设备 | |
CN111159298B (zh) | 业务请求处理方法、装置、电子设备及存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN111274047A (zh) | 信息处理方法、终端、系统、计算机设备和存储介质 | |
CN108062224B (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 |