HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //proc/self/root/usr/libexec/kcare/python/kcarectl/__pycache__/process_utils.cpython-312.pyc
�

p��g9��v�ddlZddlZddlZddlmZddlmZ	ejd
d��Zdd�Z
d�Zd�Zd	�Zy)�N�)�	log_utils)�utilsc���|xsd}|D]E}tjj||�}tjj|�s�C|cS|rt	dj||���y)N)z	/usr/sbinz/sbinz/usr/binz/binz{0} could not be found at {1})�os�path�join�isfile�	Exception�format)�name�paths�	raise_exc�it�fnames     �3/usr/libexec/kcare/python/kcarectl/process_utils.py�find_cmdrsf���?�?�E���������R��&��
�7�7�>�>�%� ��L��
��7�>�>�t�U�K�L�L��c
���|rtjnd}|rtjnd}tj||||��}|j�\}}|j}	|�tj|�}|�tj|�}tjtjd�j|j||dj|����|	||fS)N)�stdout�stderr�shellz�
       Call result for `{cmd}`:
       exit code {exit_code}
       === STDOUT ===
       {stdout}
       === STDERR ===
       {stderr}
       === END ===
    � )�	exit_coderr�cmd)
�
subprocess�PIPE�Popen�communicate�
returncoder�nstrr�logdebug�textwrap�dedentrr	)
�command�catch_stdout�catch_stderrrrr�p�stdout_captured�stderr_captured�codes
          r�run_commandr,s��� ,�Z�_�_�$�F� ,�Z�_�_�$�F�	������e�L�A�'(�}�}��$�O�_��<�<�D��"��*�*�_�5��
���*�*�_�5��
������
�
	
��&�1�<�<���]`�]e�]e�fm�]n�&�
o����/�1�1rc�(�t|d��\}}}|S)NT�r&)r,)�args�_rs   r�check_outputr1=s���t�$�7�L�A�v�q��Mrc�
�	dddddt|�g}t|d��\}}}|r(tjdj	|�	�d
��y|j�}dddd
dt|�g}t|d��\}}}|r(tjdj	|�	�d
��y|j�}t
|�|fS#t$r2}tjdj	||��d
��Yd}~yd}~wwxYw)N�psz--no-headersz-o�ppidz-pTr.z3Could not retrieve process parent PID for PID {pid})�pidF��	print_msg)NN�commz-Could not retrieve process name for PID {pid}zJCould not retrieve process name and parent PID for PID {pid}, error: {err})r5�err)�strr,r�loginfor�strip�intr)	r5�cmd_ppidr+rr0r4�cmd_commr
�es	         r� _get_parent_pid_and_process_namerABs����.�$���c�#�h�G��%�h�T�B���f�a�����S�Z�Z�_b�Z�c�ot�u���|�|�~���.�$���c�#�h�G��%�h�T�B���f�a�����M�T�T�Y\�T�]�in�o���|�|�~���4�y�$���������X�_�_�dg�mn�_�o�|A�	
���	�s%�AC�AC�*C�	D�(C=�=Dc	��g}tj�}|dk7r6|dk7r1t|�\}}|j||f�|�n
|}|dk7r|dk7r�1t	j
dd��t
t|��D]A\}\}}d|zdz}t	j
dj||xsd	|xsd	�
�d���Cy)NrrzAgent parent processes chain:Fr6�-z->z{prefix} "{name}" (pid: {pid})�unknown)�prefixr
r5)	r�getpidrA�appendrr;�	enumerate�reversedr)�
process_chain�current_pidr4�process_name�levelr5r
rEs        r�log_all_parent_processesrN\s����M��)�)�+�K�
��
�{�a�/�=�k�J���l����k�<�8�9��<����
��
�{�a�/����5��G�'���(?�@�
���{��T��u��t�#�����,�3�3�6��HY�PY�_b�_o�fo�3�p�}B�	
�
r)NT)FFF)rrr#�rr�typing�Optional�Tuple�List�Union�cachedrr,r1rArN�rr�<module>rWsE��

������������2�<�
�4
r