HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/clconfigure/lve.py
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2024 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# https://cloudlinux.com/docs/LICENCE.TXT
#
import logging
import pathlib

from clconfigure import run, task
from clconfigure.services import STATE_STOPPED, STATE_RUNNING, set_service_state


@task("Unloading lve module")
def unload_lve_module():
    """
    Restart services that still use lve device and unload lve module then
    """
    # Check if lve device is held by any process
    res = run(['lsof', '/dev/lve'])
    res_stdout_lines = res.stdout.split() if res.stdout is not None else []

    services = [
        service for service in ['mysqld', 'mariadb', 'httpd']
        if any(l.startswith(service) for l in res_stdout_lines)
    ]

    if services:
        run(['systemctl', 'restart', *services])

    res = run(['modprobe', '-rf', 'kmodlve'])
    if pathlib.Path('/sys/module/kmodlve').exists():
        logging.warning('Failed to unload the lve module. Please reboot the server.')