����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.28 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/console_utils/ |
Upload File : |
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
"""
This module contains X Ray Agent main run function
"""
import os
from typing import Optional
from xray import gettext as _
from xray.agent.daemon import Agent
from xray.internal import constants
from xray.internal.utils import (
configure_logging,
create_socket,
write_sys_id,
read_sys_id
)
PIDFILE = '/var/run/xray-agent.pid'
def _save_pid(pid: int, pidfile: str):
"""
Save agent process pid to file that other tools can use.
"""
with open(pidfile, 'w') as f:
f.write(str(pid))
def _read_pid(pidfile: str) -> Optional[int]:
try:
with open(pidfile, 'r') as f:
pid = int(f.read())
except (OSError, IOError, ValueError):
return None
# check that process is really still alive
# and not just failed to clean the pidfile
try:
os.kill(pid, 0)
except ProcessLookupError:
return None
return pid
def run(agent = None,
pidfile: str = PIDFILE,
system_id_cache_file: str = constants.agent_file) -> None:
"""
Main run function
"""
if _read_pid(pidfile):
print(_('Another daemon instance is already running, please, stop it first.'))
exit(1)
configure_logging(constants.agent_log)
if agent is None:
agent = Agent(system_id=read_sys_id())
write_sys_id(agent.sys_id, agent_system_id_path=system_id_cache_file)
_save_pid(pid=os.getpid(), pidfile=pidfile)
with create_socket(constants.agent_sock) as socket:
agent.start(socket, background_routine=True)