一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种进程监控方法、装置、电子设备及可读存储介质与流程

2021-10-24 09:15:00 来源:中国专利 TAG:电子设备 计算机应用 装置 可读 进程


1.本技术涉及计算机应用技术领域,尤其涉及一种进程监控方法、装置、电子设备及可读存储介质。


背景技术:

2.计算机程序在运行的时候,偶尔会出现无法操作的现象,有时候等待一会儿就自动恢复了,有时候一直无法恢复,多次点击后,系统弹出程序无法响应框即进程卡死,此时,提醒用户可以选择等待响应或者关闭程序,对用户产品不好的体验。
3.现有技术中,针对上述现象并没有相应的监控机制,使得产品运营维护人员只能一一跟进用户,并远程协助用户去分析和解决,使得产品运营维护人员工作效率较低。


技术实现要素:

4.有鉴于此,本技术实施例提供一种进程监控方法、装置、电子设备及可读存储介质,便于提高产品运营维护人员的工作效率。
5.第一方面,本技术实施例提供一种进程监控方法,包括:加载配置信息,并从所述配置信息中,获取目标进程的标识信息;创建等待链会话,以获取所述等待链会话的标识信息;根据所述目标进程的标识信息,确定目标线程的标识信息;其中,所述目标线程属于所述目标进程;根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死。
6.根据本技术实施例的一种具体实现方式,所述根据所述目标进程的标识信息,确定目标线程的标识信息,包括:根据所述目标进程的标识信息和系统中正在运行的进程的标识信息,确定目标进程;根据所述目标进程,确定所述目标进程的目标线程的标识信息。
7.根据本技术实施例的一种具体实现方式,所述根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死,包括:根据所述等待链会话的标识信息和所述目标线程的标识信息,获取与所述目标线程对应的等待链节点的信息;所述等待链节点属于等待链会话,所述等待链节点与线程相对应;所述等待链节点信息包括线程是否卡死的信息;根据所述与所述目标线程状态信息对应的等待链节点信息中包括的线程是否卡死的信息,确定所述目标线程是否卡死。
8.根据本技术实施例的一种具体实现方式,还包括:如果所述目标线程卡死,则收集与所述目标线程相对应的信息,并上报服务器。
9.根据本技术实施例的一种具体实现方式,还包括:如果所述目标线程卡死,则记录所述目标进程卡死前的状态信息并关闭所述目标进程;重启目标进程;根据所述目标进程卡死前的状态信息,对重启的目标进程进行状态恢复。
10.第二方面,本技术实施例提供一种进程监控装置,包括:
11.获取模块,用于加载配置信息,并从所述配置信息中,获取目标进程的标识信息;
12.创建模块,用于创建等待链会话,以获取所述等待链会话的标识信息;
13.第一确定模块,用于根据所述目标进程的标识信息,确定目标线程的标识信息;其中,所述目标线程属于所述目标进程;
14.第二确定模块,用于根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死。
15.根据本技术实施例的一种具体实现方式,所述第一确定模块,具体用于:根据所述目标进程的标识信息和系统中正在运行的进程的标识信息,确定目标进程;根据所述目标进程,确定所述目标进程的目标线程的标识信息。
16.根据本技术实施例的一种具体实现方式,所述第二确定模块,具体用于:根据所述等待链会话的标识信息和所述目标线程的标识信息,获取与所述目标线程对应的等待链节点的信息;所述等待链节点属于等待链会话,所述等待链节点与线程相对应;所述等待链节点信息包括线程是否卡死的信息;根据所述与所述目标线程状态信息对应的等待链节点信息中包括的线程是否卡死的信息,确定所述目标线程是否卡死。
17.根据本技术实施例的一种具体实现方式,还包括:收集模块,用于如果所述目标线程卡死,则收集与所述目标线程相对应的信息,并上报服务器。
18.根据本技术实施例的一种具体实现方式,还包括:记录模块,用于如果所述目标线程卡死,则记录所述目标进程卡死前的状态信息并关闭所述目标进程;重启模块,用于重启目标进程;状态恢复模块,用于根据所述目标进程卡死前的状态信息,对重启的目标进程进行状态恢复。
19.第三方面,本技术实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的进程监控方法。
20.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的进程监控方法。
21.本实施例提供的进程监控方法、装置、电子设备及可读存储介质,通过从配置信息中,获取目标进程的标识信息,并创建等待链会话,从而获取等待链会话的标识信息,再根据目标进程的标识信息,确定目标线程的标识信息,进而,可以根据等待链会话的标识信息和目标线程的标识信息,从而,确定目标线程是否卡死,进一步地,可确定目标进程是否卡死,本实施例的进程监控方法,能够实现监控指定进程,便于运营维护人员获取目标线程的相关信息,并据此分析、解决进程卡死的问题,从而便于提高运营维护人员的工作效率。
附图说明
22.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
23.图1为本技术一实施例提供的进程监控方法的流程示意图;
24.图2为本技术又一实施例提供的进程监控方法的流程示意图;
25.图3为本技术一实施例提供的进程监控装置的结构示意图;
26.图4为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
27.下面结合附图对本技术实施例进行详细描述。应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
28.为使本领域技术人员更好地理解本技术实施例的技术构思、实施方案和有益效果,下面通过具体实施例进行详细说明。
29.第一方面,本技术一实施例提供的一种进程监控方法,包括:加载配置信息,并从所述配置信息中,获取目标进程的标识信息;创建等待链会话,以获取所述等待链会话的标识信息;根据所述目标进程的标识信息,确定目标线程的标识信息;其中,所述目标线程属于所述目标进程;根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死,便于提高运营维护人员的工作效率。
30.图1为本技术一实施例提供的进程监控方法的流程示意图,如图1所示,本实施例的进程监控方法,可以包括:
31.s101、加载配置信息,并从配置信息中,获取目标进程的标识信息。
32.将配置信息加载到内存,从配置信息中获取目标进程的标识信息,可以理解的是配置信息中包括目标进程的标识信息,该目标进程即为被监测的进程,被监测的进程可根据实际需要进行设定。目标进程的标识信息为能够唯一确定该目标进程的标识。目标进程的个数可为一个或多个。
33.在一些例子中,配置信息中还可以包括对目标进程监控的时间间隔信息,进一步地,可以按照该信息对目标进程进行轮询监控。
34.s102、创建等待链会话,以获取等待链会话的标识信息。
35.在一些例子中,等待链会话为微软提供的一种监控机制,具体可通过等待链遍历技术,确定进程/线程是否卡死以及卡死原因。在创建的等待链会话中包括了与进程相关的各个线程的信息。
36.可调用创建等待链会话函数,实现创建等待链会话,在一些例子中,可调用openthreadwaitchainsession函数以创建等待链会话,进而获取等待链会话的标识信息,具体可为等待链会话的句柄。
37.s103、根据目标进程的标识信息,确定目标线程的标识信息。
38.一个进程可包括至少一个线程,本实施例的目标进程可以包括至少一个线程,本实施例中的目标线程属于所述目标进程,即目标线程可为目标进程包括的其中一个线程。
39.线程是操作系统能够进行运算调度的最小单位。
40.本实施例,可以根据s101中获取的目标进程的标识信息,确定该目标进程的线程的标识信息。
41.s104、根据等待链会话的标识信息和目标线程的标识信息,确定目标线程是否卡死。
42.卡死,又称为死锁,可以为线程/进程间切换消耗系统性能的一种极端情况。在死锁时,线程/进程间相互等待资源,而又不释放自身的资源,导致无穷无尽的等待,其结果是任务永远无法执行完成。
43.根据目标线程的标识信息,可在等待链会话的标识信息对应的等待链会话中确定目标线程的是否卡死的信息,根据该信息,确定该目标线程是否卡死。
44.在一些例子,上述s103确定一个目标线程的标识信息,再通过s104,确定该目标线程是否卡死,进一步地,可以确定目标进程是否卡死,为了获取更多目标进程包括的线程是否卡死的信息,可再执行s103和s104步骤。可以理解的是,不断的重复执行s103和s104步骤,可依次得到多个目标线程是否卡死的信息,这样,便于运行维护人员对卡死原因进行分析。
45.本实施例,通过从配置信息中,获取目标进程的标识信息,并创建等待链会话,从而获取等待链会话的标识信息,再根据目标进程的标识信息,确定目标线程的标识信息,进而,可以根据等待链会话的标识信息和目标线程的标识信息,从而,确定目标线程是否卡死,进一步地,可确定目标进程是否卡死,本实施例的进程监控方法,能够实现监控指定进程,便于运营维护人员获取目标线程的相关信息,并据此分析、解决进程卡死的问题,从而便于提高运营维护人员的工作效率。
46.本技术一实施例,与上述实施例基本相同,不同之处在于,本实施例的根据所述目标进程的标识信息,确定目标线程的标识信息(s103),可以包括:
47.s103a、根据目标进程的标识信息和系统中正在运行的进程的标识信息,确定目标进程。
48.系统中运行多个进程,其中可能包括被监控的进程,也可能不包括被监控的进程。
49.本实施例中,可根据从配置信息中获取的被监控进程即目标进程的标识信息,从系统中正在运行的所有进程中,确定目标进程。在一些例子中,可通过枚举进程函数,从系统中正在运行的所有进程中,确定目标进程,具体地,可通过enumprocesses函数枚举系统中正在运行的所有进程,结合从配置信息中获取的目标进程的标识信息,确定目标进程。
50.s103b、根据目标进程,确定目标进程的目标线程的标识信息。
51.一个进程包括至少一个线程,可根据目标进程,确定目标进程中的目标线程的标识信息。在一些例子中,可通过枚举进程函数,从目标进程包括的线程中,确定目标线程的标识信息,具体可通过createtoolhelp32snapshot从目标进程包括的线程中,确定目标线程的标识信息。
52.本实施例,通过根据目标进程的标识信息和系统中正在运行的进程的标识信息,确定目标进程,根据目标进程,确定目标进程的目标线程的标识信息,可以较为方便地确定目标线程的标识信息。
53.本技术一实施例,与上述实施例基本相同,不同之处在于,本实施例的根据等待链会话的标识信息和目标线程的标识信息,确定目标线程是否卡死(s104),包括:
54.s104a、根据等待链会话的标识信息和目标线程的标识信息,获取与目标线程对应的等待链节点信息。
55.等待链节点属于等待链会话,也就是说,等待链会话包括等待链节点,等待链节点与线程相对应;等待链节点信息包括线程是否卡死的信息。在一些例子中,可利用获取等待
链函数,遍历等待链会话,获取与目标线程对应的等待链节点信息,具体可通过getthreadwaitchain函数,遍历等待链会话,获取与目标线程对应的等待链节点信息。在一些例子中,获取到的与目标线程对应的等待链节点信息可为waitchain_节点_信息结构的数组,该数组描述了线程状态以及当前受阻内容,此外,通过getthreadwaitchain函数还会返回根据等待链代码内部的分析引擎判定的线程是否发生死锁的信息。
56.s104b、根据与目标线程状态信息对应的等待链节点信息中包括的线程是否卡死的信息,确定目标线程是否卡死。
57.图2为本技术又一实施例提供的进程监控方法的流程示意图,如图2所示,为了便于运营维护人员快速分析、定位软件卡住的原因,在一些例子中的进程监控方法,还可以包括:
58.s105、如果目标线程卡死,则收集与目标线程相对应的信息,并上报服务器。
59.与目标线程相对应的信息可为目标线程所在模块的部分或全部信息,也可将与目标线程所属进程的部分或全部信息。
60.运营维护人员可以根据收集与目标线程相对应的信息,快速分析、定位对卡死原因。
61.为了提高用户体验,在一些例子中的监控方法,还可以包括:
62.s106、如果目标线程卡死,则记录所述目标进程卡死前的状态信息并关闭所述目标进程。
63.如微信聊天中打开了与李梅的聊天界面,而后,聊天界面对应的进程卡死,则记录该聊天界面涉及的聊天对象是李梅的状态信息。关闭聊天界面对应的进程。
64.s107、重启目标进程。
65.如重启聊天界面对应的进程。
66.s108、根据目标进程卡死前的状态信息,对重启的目标进程进行状态恢复。
67.根据聊天界面涉及的聊天对象是李梅的状态信息,对重启的聊天界面对应的进程,进行状态恢复,即恢复到与李梅的聊天界面。
68.为了便于操作系统获取目标进程卡死信息,在一些例子中的进程监控方法,还可以包括:
69.注册com回调函数,以将所述待监控线程是否卡死的信息发送给操作系统。
70.在一些例子中,可以通过注册函数以注册com回调函数,具体可通过,registerwaitchaincomcallback函数注册com回调函数。
71.为了节省系统资源,在不需监控进程的情况下,在一些例子中,进程监控方法,还包括:
72.清理等待链会话。
73.在一些例子中,可以通过清理等待链会话函数实现等待链会话的清理,具体可调用closethreadwaitchainsession函数实现等待链会话的清理。
74.下面以一具体实施例,对本技术技术方案进行详细说明。
75.本实施例的进程监控方法,包括:
76.步骤201、启动监控进程,加载监控模块。
77.步骤202、监控模块初始化,读取配置信息,注册监控机制并启动,开始监控指定进
程。
78.初始化监控模块,从配置信息中获取指定进程(被监控进程)的标识信息,在一些例子中,也可从配置信息中获取对指定进程进行监控的时间间隔,例如可对指定进程10min监控一次。
79.步骤202可进一步包括:
80.步骤202a、调用registerwaitchaincomcallback函数以注册com回调函数。
81.调用registerwaitchaincomcallback函数,进一步地,注册cogetcallstate和cogetactivationstate com函数,以便wct能够向操作系统报告com所有权信息即可以向系统包括卡死进程的信息。
82.步骤202b、调用openthreadwaitchainsession函数以创建等待链会话。
83.步骤202c、调用enumprocesses和createtoolhelp32snapshot函数来枚举指定的线程。
84.步骤202d、调用getthreadwaitchain来检索包含等待链节点的waitchain_节点_信息结构的数组。
85.该数组中包括与指定线程对应的等待链节点是否卡死的信息。
86.步骤202e、分析等待链的信息,判断是否死锁。
87.在欲结束监控时,可调用closethreadwaitchainsession函数以清理等待链会话。
88.上述步骤202c

步骤202e可为对于指定进程的一个线程进行监控的过程,如果对其它线程进行监控,可重复上述步骤202c

步骤202e。
89.在一些例子中,当指定进程的其中一个线程卡死,则认为该指定进程卡死。
90.为了便于运行维护人员进行分析、定位卡死原因,可以收集更多的信息,如可重复上述步骤202c

步骤202e,得到指定进程的所有线程的是否卡死的信息,进一步地,收集所有卡死线程的相关信息。
91.步骤203、当指定进程发生卡死时,监控进程开始启动收集机制,收集相应信息。
92.当指定进程发生卡死时,监控进程收集与该进程相关的信息。
93.步骤204、上报卡死信息到指定服务器,运营人员分析数据。
94.步骤205、收集该指定进程卡死前的信息,并关闭指定进程。
95.步骤206、重启指定进程,根据收集到的该指定进程卡死前的信息,对重启的指定进程进行状态恢复。
96.本实施例中,提供了一套基于等待链遍历的api以监控进程卡死的方案,也就是说,利用系统api进行二次封装,实现一套进程无响应的监控方案,能够便于运营平台快速分析、定位软件卡住问题,同时针对用户卡主进程进行自动修复,提升用户体验,并减少了运营人员的工作量。
97.第二方面,本技术一实施例提供的一种进程监控装置,包括:获取模块,用于加载配置信息,并从所述配置信息中,获取目标进程的标识信息;创建模块,用于创建等待链会话,以获取所述等待链会话的标识信息;第一确定模块,用于根据所述目标进程的标识信息,确定目标线程的标识信息;其中,所述目标线程属于所述目标进程;第二确定模块,用于根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死,便于提高运营维护人员的工作效率。
98.图3为本技术一实施例提供的进程监控装置的结构示意图,如图3所示,本实施例的装置可以包括:
99.获取模块11,用于加载配置信息,并从所述配置信息中,获取目标进程的标识信息;
100.创建模块12,用于创建等待链会话,以获取所述等待链会话的标识信息;
101.第一确定模块13,用于根据所述目标进程的标识信息,确定目标线程的标识信息;其中,所述目标线程属于所述目标进程;
102.第二确定模块14,用于根据所述等待链会话的标识信息和所述目标线程的标识信息,确定所述目标线程是否卡死。
103.本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
104.本实施例的装置,通过从配置信息中,获取目标进程的标识信息,并创建等待链会话,从而获取等待链会话的标识信息,再根据目标进程的标识信息,确定目标线程的标识信息,进而,可以根据等待链会话的标识信息和目标线程的标识信息,从而,确定目标线程是否卡死,进一步地,可确定目标进程是否卡死,本实施例的进程监控方法,能够实现监控指定进程,便于运营维护人员获取目标线程的相关信息,并据此分析、解决进程卡死的问题,从而提高运营维护人员的工作效率。
105.作为一可选实施方式,所述第一确定模块,具体用于:根据所述目标进程的标识信息和系统中正在运行的进程的标识信息,确定目标进程;根据所述目标进程,确定所述目标进程的目标线程的标识信息。
106.作为一可选实施方式,所述第二确定模块,具体用于:根据所述等待链会话的标识信息和所述目标线程的标识信息,获取与所述目标线程对应的等待链节点的信息;所述等待链节点属于等待链会话,所述等待链节点与线程相对应;所述等待链节点信息包括线程是否卡死的信息;根据所述与所述目标线程状态信息对应的等待链节点信息中包括的线程是否卡死的信息,确定所述目标线程是否卡死。
107.作为一可选实施方式,还包括:收集模块,用于如果所述目标线程卡死,则收集与所述目标线程相对应的信息,并上报服务器。
108.作为一可选实施方式,还包括:记录模块,用于如果所述目标线程卡死,则记录所述目标进程卡死前的状态信息并关闭所述目标进程;重启模块,用于重启目标进程;状态恢复模块,用于根据所述目标进程卡死前的状态信息,对重启的目标进程进行状态恢复。
109.上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
110.第三方面,图4为本技术一实施例提供的电子设备的结构示意图,可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述电子设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种进程监控方法,因此也能实现相应的有益技术效果,前文已经进行了详细说明,此处不再赘述。
111.上述电子设备以多种形式存在,包括但不限于:
112.(1)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
113.(2)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
114.(3)其他具有数据交互功能的电子设备。
115.相应的,本技术的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种进程监控方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
116.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
117.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
118.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
119.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本技术时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
120.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。
121.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜