HEX
Server: Apache
System: Linux nc-ph-4101.simplemoneygoals.com 5.14.0-503.21.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Jan 12 09:45:05 EST 2025 x86_64
User: dailygoldindex (1004)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_sysctl.cpython-39.pyc
a

,�g�@s�ddlZddlmZddlTddlZddlTddlmZddl	m
Z
ddlZddlZej
��ZddgZdd	gZGd
d�dej�ZdS)�N�)�base)�*)�commandsZbase_reachable_timeZretrans_timez
/run/sysctl.dz
/etc/sysctl.dcs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Ze	j
fdd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zddd�Z�ZS)�SysctlPlugina5
	Sets various kernel parameters at runtime.

	This plug-in is used for applying custom `sysctl` settings and should
	only be used to change system settings that are not covered by other
	*TuneD* plug-ins. If the settings are covered by other *TuneD* plug-ins,
	use those plug-ins instead.

	The syntax for this plug-in is
	`_key_=_value_`, where
	`_key_` is the same as the key name provided by the
	`sysctl` utility.

	.Adjusting the kernel runtime kernel.sched_min_granularity_ns value
	====
	----
	[sysctl]
	kernel.sched_min_granularity_ns=3000000
	----
	====
	cs(tt|�j|i|��d|_t�|_dS)NT)�superr�__init__Z_has_dynamic_optionsr�_cmd)�self�args�kwargs��	__class__��?/usr/lib/python3.9/site-packages/tuned/plugins/plugin_sysctl.pyr(szSysctlPlugin.__init__cCshd|_d|_|�|j�}|j�|i�|_t|j�dkr\t�	d�|�
|�i|_|j�|�|j|_
dS)NFTrz0recovering old sysctl settings from previous run)Z_has_dynamic_tuningZ_has_static_tuning�_storage_key�name�_storage�get�_sysctl_original�len�log�info�_instance_unapply_static�unset�options�_sysctl�r
�instance�storage_keyrrr�_instance_init-s

zSysctlPlugin._instance_initcCs|�|j�}|j�|�dS�N)rrrrrrrr�_instance_cleanup=szSysctlPlugin._instance_cleanupcCs�t|j���D]h\}}|�|�}|dur8t�d|�q|j�|j�	|��}|�
||�}|dur||j|<|�||�q|�
|j�}|j�||j�|j�tjtj�r�t�d�|�|j�dS)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)�listr�items�_read_sysctlr�error�
_variables�expandr	�unquote�_process_assignment_modifiersr�
_write_sysctlrrr�setZ_global_cfgZget_bool�constsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr�_apply_system_sysctl)r
r�option�value�original_valueZ	new_valuerrrr�_instance_apply_staticAs(
�
��

z#SysctlPlugin._instance_apply_staticcCsrd}d}t|j���D]V\}}|�|�}|�|j�|�|�}|dur|�||j�	|�|j�	|�|�dkrd}q|S)NTF)
r#rr$r%r*r'r(Z
_verify_valuer	Z	remove_ws)r
r�ignore_missingZdevices�retr/r0Zcurr_valrrr�_instance_verify_staticWs
$z$SysctlPlugin._instance_verify_staticcCs(t|j���D]\}}|�||�qdSr!)r#rr$r+)r
rZrollbackr/r0rrrrcsz%SysctlPlugin._instance_unapply_staticc	Cs�i}tD]P}zt�|�}Wnty0YqYn0|D] }|�d�sFq6||vr6|||<q6qt|���D]$}||}d||f}|�||�qf|�d|�dS)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)r
�instance_sysctl�files�d�flist�fname�pathrrrr.gs 

z!SysctlPlugin._apply_system_sysctlc
Cs�t�d|�z`t|d��4}t|d�D]\}}|�||||�q&Wd�n1sT0Yt�d|�WnJttfy�}z.|jtjkr�t�	d|t
|�f�WYd}~n
d}~00dS)Nz%Applying sysctl settings from file %s�rrz.Finished applying sysctl settings from file %sz.Error reading sysctl settings from file %s: %s)r�debug�open�	enumerate�_apply_sysctl_config_liner9�IOError�errno�ENOENTr&�str)r
rCr>�f�lineno�line�errrr=zs0�

�z&SysctlPlugin._apply_sysctl_config_filec	Cs�|��}t|�dks,|ddks,|ddkr0dS|�dd�}t|�dkr^t�d||f�dS|\}}|��}t|�dkr�t�d||f�dS|��}||vr�|j�||�}||kr�t�d|||f�|j||d	d
�dS)Nr�#�;�=r�z Syntax error in file %s, line %dz2Overriding sysctl parameter '%s' from '%s' to '%s'T)r3)	�stripr�splitrr&r'r(rr+)	r
rCrNrOr>�tmpr/r0Zinstance_valuerrrrH�s0$���z&SysctlPlugin._apply_sysctl_config_linecCsd|j�|dd�S)Nz/proc/sys/%sz./z/.)r	�tr)r
r/rrr�_get_sysctl_path�szSysctlPlugin._get_sysctl_pathcCsV|�|�}|jj|dd�}|dur&dS|��}t|�d��dkrRt�d|�dS|S)N)Zerr_ret�
rzGFailed to read sysctl parameter '%s', multi-line values are unsupported)rYr	Z	read_filerUrrVrr&)r
r/rCZcontentrrrr%�s
zSysctlPlugin._read_sysctlFcCsL|�|�}tj�|�tvr,t�d|�dS|jj|||rBt	j
gnddd�S)Nz+Refusing to set deprecated sysctl option %sFT)Zno_errorZignore_same)rYr7rC�basename�DEPRECATED_SYSCTL_OPTIONSrr&r	Z
write_to_filerJrK)r
r/r0r3rCrrrr+�s

zSysctlPlugin._write_sysctl)F)�__name__�
__module__�__qualname__�__doc__rr r"r2r5r-Z
ROLLBACK_SOFTrr.r=rHrYr%r+�
__classcell__rrr
rrs
r)�re�rZ
decoratorsZ
tuned.logsZtuned�
subprocessZtuned.utils.commandsrZtuned.constsr-rJr7Zlogsrrr\r6ZPluginrrrrr�<module>s
�