Sindbad~EG File Manager
3
��"h9 � @ sf d dl Z d dlZd dlZddlmZ ddlmZ ejddd��Zdd d
�Zdd� Z d
d� Z
dd� ZdS )� N� )� log_utils)�utilsTc C sR |pd}x*|D ]"}t jj|| �}t jj|�r|S qW |rJtdj| |���nd S d S )N� /usr/sbin�/sbin�/usr/bin�/binz{0} could not be found at {1})r r r r )�os�path�join�isfile� Exception�format)�name�pathsZ raise_exc�it�fname� r �3/usr/libexec/kcare/python/kcarectl/process_utils.py�find_cmd s
r Fc
C s� |r
t jnd }|rt jnd }t j| |||d�}|j� \}}|j} |d k rRtj|�}|d k rdtj|�}tjt j
d�j|j||dj| �d�� | ||fS )N)�stdout�stderr�shellz�
Call result for `{cmd}`:
exit code {exit_code}
=== STDOUT ===
{stdout}
=== STDERR ===
{stderr}
=== END ===
� )Z exit_coder r �cmd)
�
subprocess�PIPE�Popen�communicate�
returncoder �nstrr �logdebug�textwrap�dedentr r )
Zcommand�catch_stdout�catch_stderrr r r �pZstdout_capturedZstderr_captured�coder r r �run_command s
r( c C s t | dd�\}}}|S )NT)r$ )r( )�args�_r r r r �check_output= s r+ c C s� y�dddddt | �g}t|dd�\}}}|rFtjdj| d �d
d� dS |j� }dddddt | �g}t|dd�\}}}|r�tjd
j| d �d
d� dS |j� }t|�|fS tk
r� } ztjdj| |d�d
d� dS d }~X nX d S )NZpsz--no-headersz-o�ppidz-pT)r$ z3Could not retrieve process parent PID for PID {pid})�pidF)� print_msgZcommz-Could not retrieve process name for PID {pid}zJCould not retrieve process name and parent PID for PID {pid}, error: {err})r- �err)NN)NN)NN)�strr( r �loginfor �strip�intr
) r- Zcmd_ppidr'