#!/opt/imunify360/venv/bin/python3 """ 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 . Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see """ import logging from imav.application.settings import configure from imav.malwarelib.utils import reset_malware_schedule from imav import rpc_handlers from defence360agent import defence360 from defence360agent.application import tags from defence360agent.contracts.config import Core from defence360agent.internals.cln import subscribe_to_license_changes from defence360agent.subsys import svcctl from defence360agent.utils import importer, make_coro, run_coro logger = logging.getLogger(__name__) def is_agent_active(): adaptor = svcctl.adaptor(Core.SVC_NAME) run_coro(adaptor.activate_socket_service()) def _run(): configure(set_sentry_tags=tags.cached_fill) subscribe_to_license_changes(make_coro(reset_malware_schedule)) is_agent_active() defence360.entrypoint(rpc_handlers.init) def run(): # a symlink is used for compatibility # /usr/bin/imunify360-agent -> /usr/bin/imunify-antivirus # so run IM360 if available run_cmd = importer.get(module="im360.cli", name="run", default=_run) run_cmd()