IPCS Semaphores

Combiner for parsing all semaphores. It uses the results of the IpcsS and IpcsSI parsers to collect complete semaphore information,and use PsAuxcww parsers to determine if one semaphore is orphan.

class insights.combiners.ipcs_semaphores.IpcsSemaphore(data)[source]

Bases: object

Class for holding information about one semaphore.

is_orphan

Is it an orphan semaphore?

Type

bool

owner

Owner of the semaphore.

Type

str

pid_list

List of the related PID.

Type

list

semid

Semaphore ID.

Type

str

class insights.combiners.ipcs_semaphores.IpcsSemaphores(sem_s, sem_si, ps)[source]

Bases: object

Class for parsing all semaphores. Will generate IpcsSemaphore objects for each semaphores.

Below is the logic to determine if semaphore an orphan:

- PID=0 does not included in the related PID
- Related PID cannot be found in running PIDs

Examples

>>> oph_sem.count_of_all_sems()
5
>>> oph_sem.count_of_all_sems(owner='apache')
4
>>> oph_sem.count_of_orphan_sems()
2
>>> oph_sem.count_of_orphan_sems('apache')
2
>>> oph_sem.get_sem('65536').is_orphan
False
count_of_all_sems(owner=None)[source]

Return the count of all semaphores by default, when owner is provided return the count of semaphores belong to owner.

Parameters

owner (str) -- Owner of semaphores.

Returns

the count of semaphores.

Return type

(int)

count_of_orphan_sems(owner=None)[source]

Return the count of orphan semaphores by default, when owner is provided return the count of orphan semaphores belong to owner.

Parameters

owner (str) -- Owner of semaphores.

Returns

the count of orphan semaphores

Return type

(int)

get_sem(semid)[source]

Return an IpcsSemaphore instance which semid is semid

Returns

the instance of IpcsSemaphore

Return type

(IpcsSemaphore)

orphan_sems(owner=None)[source]

Return all the orphan semaphores by default, when owner is provided return the orphan semaphores belong to owner.

Parameters

owner (str) -- Owner of semaphores.

Returns

the ID list of orphan semaphores

Return type

(list)