| Server IP : 3.96.16.70 / Your IP : 216.73.216.15 Web Server : Apache System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3.9/site-packages/cfnbootstrap/__pycache__/ |
Upload File : |
a
��0i9 � @ sf d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dl Z d dl
Z
e �d�ZG dd� de�Z
dS ) � )�util)�ServiceTool)�LoggingProcessHelper)� ToolErrorNzcfn.initc sj e Zd ZdZdd�� fdd�Zdd� Ze�e�fdd �Z d
d� Z
dd
� Zdd� Zdd� Z
ddd�Z� ZS )�SystemDToolz$
Manage service via SystemD
N)�returnc s t � �� d | _d S )N)�super�__init__�_executable)�self�� __class__� �=/usr/lib/python3.9/site-packages/cfnbootstrap/systemd_tool.pyr ! s
zSystemDTool.__init__c C s* d}t j�|�r|S t�d� td��d S )Nz/usr/bin/systemctlzsystemctl is not availablez(SystemD is not available on the instance)�os�path�exists�log�errorr )r �_pathr r r �_get_executable% s
zSystemDTool._get_executablec C s |� � st�d� dS | �� | _|�� D ]�\}}| �||�}d|v r\| �|t� |d �� nt�d�
|�� |r�t�d�
|�� | �|� q(d|v �rt� |d �}| �|�}|r�|s�t�d�
|�� | �
|� n4|s�|r�t�d�
|�� | �|� nt�d �
|�� q(t�d
�
|�� q(dS )a�
Take a dict of service config
Sample input
{
"nginx" : {
"enabled" : "true",
"ensureRunning" : "true",
"files" : ["/etc/nginx/nginx.conf"],
"sources" : ["/var/www/html"]
},
"php-fastcgi" : {
"enabled" : "true",
"ensureRunning" : "true",
"packages" : { "yum" : ["php", "spawn-fcgi"] }
},
"sendmail" : {
"enabled" : "false",
"ensureRunning" : "false"
}
}
}
zNo SystemD scripts specifiedN�enabledz*Not modifying enabled state of service: {}z2Restarting {} due to change detected in dependencyZ
ensureRunningz(Starting service {} as it is not runningz$Stopping service {} as it is runningz.No need to modify running status of service {}z)Not modifying running state of service {})�keysr �debugr r
�itemsZ_detect_required_restart�_set_service_enabledr Zinterpret_boolean�format�_restart_service�_is_service_running�_start_service�
_stop_service)r �actionZchangesZservice_nameZservice_propertiesZshould_force_restartZshould_ensure_runningZis_service_runningr r r �apply- sR
����
�
����zSystemDTool.applyc C s� | j dg}t|��� }|jr>t�d�|�� td�|�|j��| j d|g}t|��� }|jr~t�d�|�� td�|�|j��d S )Nz
daemon-reloadz5SystemD failed to reload configuration for service {}z%Could not relaod configuration for {}zreload-or-restartz.SystemD failed to reload or restart service {}z&Could not reload or restart service {})r
r �call�
returncoder r r r )r �serviceZ
reload_cmdZ
reload_resultZrestart_cmdZrestart_resultr r r r l s(
�����zSystemDTool._restart_servicec C sh | j d|g}t|��� }|jrTt�d�||j�� t�d�|j�� t d�|���nt�
d�|�� d S )N�startz.Could not start service {}; return code was {}�Service output: {}zCould not start {}zStarted {} successfully�r
r r# r$ r r r r �stdoutr �info�r r% �cmd�resultr r r r ~ s �zSystemDTool._start_servicec C sh | j d|g}t|��� }|jrTt�d�||j�� t�d�|j�� t d�|���nt�
d�|�� d S )N�stopz-Could not stop service {}; return code was {}r'