IP Library Granted Patent US 10,394,619
Granted Patent B2
US 10,394,619 · App. 15/243,708 · Granted Aug 27, 2019

Signature-based service manager with dependency checking

Inventors: Timothy Demulder (Zwijnaarde, BE); Wim De Waegeneer (Ghent, BE)
Assignee: Western Digital Technologies, Inc
G06F9/52G06F9/4843
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,394,619
App. No.
15/243,708
Granted
Aug 27, 2019
Kind
B2
Abstract

The present disclosure relates to systems and methods of implementing a service manager. In particular, the present disclosure relates to methods of monitoring a plurality of services, wherein each service is uniquely identifiable in a process table based on a fingerprint; receiving a request to add a new service to the plurality of services; determining whether service dependencies in a configuration of the plurality of services and the new service are compatible; and responsive to determining that the service dependencies in the configuration of the plurality of services and the new service are compatible, starting the new service. The method may further include receiving a request to call a user-defined function and determining whether the new service is functional based on executing the user-defined function.

Claims (78)

1. A computer-implemented method comprising:

monitoring a plurality of services, wherein:

each service is a process managed by an operating system and running on a computer, wherein the process is uniquely identifiable in a process table of the operating system based on a signature;

the signature is based on a combination of at least two service attributes in an entry in the process table for the process, wherein at least one service attribute of the at least two service attributes comprises one or more of a file system location and a command line argument associated with the service;

the signature excludes a unique process identifier assigned to the process and included in the entry for the process in the process table; and

the signature is used to identify each of the plurality of services in the process table for monitoring the plurality of services;

receiving a request to add a new service to the plurality of services;

determining, using signatures to lookup processes in the process table, whether service dependencies of the plurality of services in the process table and the new service are compatible; and

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

starting the new service; and

determining a new signature for the new service based on a new entry in the process table for the new service.

2. The computer-implemented method of claim 1 , wherein:

at least one service attribute of the at least two service attributes comprises one or more of a process name, a process state, process control data, a priority, parent process information, a process group, user identification data, flags, and a name of a binary file associated with the service.

3. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are compatible with the new service in response to determining that a prerequisite service of the new service exists in the process table.

4. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are not compatible with the new service in response to determining that the new service and a prerequisite service of the new service create an infinite loop.

5. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests a disabled service.

6. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to both start and stop a prerequisite service of the new service.

7. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to start itself.

8. The computer-implemented method of claim 1 , wherein determining whether the service dependencies of the plurality of services in the process table and the new service are compatible comprises:

determining that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to stop itself.

9. The computer-implemented method of claim 1 , further comprising:

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

receiving a return code of the new service; and

determining that the new service started up successfully based on the return code.

10. The computer-implemented method of claim 1 , further comprising:

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

receiving a request to call a user-defined function; and

determining whether the new service is functional based on executing the user-defined function.

11. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

monitor a plurality of services, wherein:

each service is a process managed by an operating system and running on a computer, wherein the process is uniquely identifiable in a process table of the operating system based on a signature;

the signature is based on a combination of at least two service attributes in an entry in the process table for the process, wherein at least one service attribute of the at least two service attributes comprises one or more of a file system location and a command line argument associated with the service;

the signature excludes a unique process identifier assigned to the process and included in the entry for the process in the process table; and

the signature is used to identify each of the plurality of services in the process table for monitoring the plurality of services;

receive a request to add a new service to the plurality of services;

determine, using signatures to lookup processes in the process table, whether service dependencies of the plurality of services in the process table and the new service are compatible; and

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

start the new service; and

determine a new signature for the new service based on a new entry in the process table for the new service.

12. The system of claim 11 , wherein:

at least one service attribute of the at least two service attributes comprises one or more of a process name, a process state, process control data, a priority, parent process information, a process group, user identification data, flags, and a name of a binary file associated with the service.

13. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are compatible with the new service in response to determining that a prerequisite service of the new service exists in the process table.

14. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are not compatible with the new service in response to determining that the new service and a prerequisite service of the new service create an infinite loop.

15. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests a disabled service.

16. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to both start and stop a prerequisite service of the new service.

17. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to start itself.

18. The system of claim 11 , wherein to determine whether the service dependencies of the plurality of services in the process table and the new service are compatible, the instructions cause the one or more processors to:

determine that the plurality of services in the process table are not compatible with the new service in response to determining that the new service requests to stop itself.

19. The system of claim 11 , wherein the instructions further cause the one or more processors to:

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

receive a return code of the new service; and

determine that the new service started up successfully based on the return code.

20. The system of claim 11 , wherein the instructions further cause the one or more processors to:

responsive to determining that the service dependencies of the plurality of services in the process table and the new service are compatible:

receive a request to call a user-defined function; and

determine whether the new service is functional based on executing the user-defined function.

21. A system, comprising:

means for monitoring a plurality of services, wherein:

each service is a process managed by an operating system and running on a computer, wherein the process is uniquely identifiable in a process table of the operating system based on a signature;

the signature is based on a combination of at least two service attributes in an entry in the process table for the process, wherein at least one service attribute of the at least two service attributes comprises one or more of a file system location and a command line argument associated with the service;

the signature excludes a unique process identifier assigned to the process and included in the entry for the process in the process table; and

the signature is used to identify each of the plurality of services in the process table for monitoring the plurality of services;

means for receiving a request to add a new service to the plurality of services;

means for determining, using signatures to lookup processes in the process table, whether service dependencies in the plurality of services and the new service are compatible means for starting, the responsive to determining that the service dependencies of the plurality of services and the new service are comparible, the new service.

22. The computer-implemented method of claim 1 , wherein the signature for each service is determined by processing the combination of at least two service attributes by a process selected from concatenation and calculating a hash.

23. The system of claim 21 , wherein the signature for each service is determined by processing the combination of at least two service attributes by a process selected from concatenation and calculating a hash.

Assignments (13)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2018
From: AMPLIDATA NV
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046739/0176 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2016
From: DEMULDER, TIMOTHY; DE WAEGENEER, WIM
To: AMPLIDATA N.V.
Reel/Frame 039521/0485 →
Continuity (1)
Related Publication 20180052718A1 · Feb 22, 2018