HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/root/usr/libexec/kcare/python/kcarectl/__pycache__/process_utils.cpython-38.pyc
U

n�h,�@s^ddlZddlZddlZddlmZmZej
ddd��Zddd	�Zd
d�Z
dd
�Zdd�ZdS)�N�)�	log_utils�utilsTcCsR|pd}|D]&}tj�||�}tj�|�r|Sq|rJtd�||���ndSdS)N)z	/usr/sbinz/sbinz/usr/binz/binz{0} could not be found at {1})�os�path�join�isfile�	Exception�format)�name�pathsZ	raise_exc�it�fname�r�3/usr/libexec/kcare/python/kcarectl/process_utils.py�find_cmds
rFc
	Cs�|r
tjnd}|rtjnd}tj||||d�}|��\}}|j}	|dk	rRt�|�}|dk	rdt�|�}t�t	�
d�j|j||d�|�d��|	||fS)N)�stdout�stderr�shellz�
       Call result for `{cmd}`:
       exit code {exit_code}
       === STDOUT ===
       {stdout}
       === STDERR ===
       {stderr}
       === END ===
    � )Z	exit_coderr�cmd)
�
subprocess�PIPE�PopenZcommunicate�
returncoder�nstrr�logdebug�textwrap�dedentr
r)
Zcommand�catch_stdout�catch_stderrrrr�pZstdout_capturedZstderr_captured�coderrr�run_commands(

�
��
r#cCst|dd�\}}}|S)NT�r)r#)�args�_rrrr�check_output<sr'c	
Cs�z�dddddt|�g}t|dd�\}}}|rHtjdj|d	�d
d�WdS|��}dddd
dt|�g}t|dd�\}}}|r�tjdj|d	�d
d�WdS|��}t|�|fWStk
r�}z"tjdj||d�d
d�WY�dSd}~XYnXdS)N�psz--no-headersz-o�ppidz-pTr$z3Could not retrieve process parent PID for PID {pid})�pidF��	print_msg)NNZcommz-Could not retrieve process name for PID {pid}zJCould not retrieve process name and parent PID for PID {pid}, error: {err})r*�err)�strr#r�loginfor
�strip�intr	)	r*Zcmd_ppidr"rr&r)Zcmd_commr�errr� _get_parent_pid_and_process_nameAs(�r3cCs�g}t��}|dkrF|dkrFt|�\}}|�||f�|dkr@qF|}qtjddd�tt|��D]:\}\}}d|d}tjdj||p�d	|p�d	d
�dd�q`dS)NrrzAgent parent processes chain:Fr+�-z->z{prefix} "{name}" (pid: {pid})�unknown)�prefixrr*)	r�getpidr3�appendrr/�	enumerate�reversedr
)Z
process_chainZcurrent_pidr)Zprocess_name�levelr*rr6rrr�log_all_parent_processes[s�r<)NT)FFF)rrr�rrZList�Optional�Tuple�Union�cachedrr#r'r3r<rrrr�<module>s