From 822b20dd87694188273bc9dd07b5e6d165a5baad Mon Sep 17 00:00:00 2001 From: xpamych Date: Wed, 26 Apr 2023 23:31:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=B4=20=D1=81=D0=BE=D0=B7=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20systemd=20=D1=8E=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B0=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hlna.py | 74 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/hlna.py b/hlna.py index 69942d9..b919ca1 100755 --- a/hlna.py +++ b/hlna.py @@ -59,6 +59,7 @@ def create_dir(directory): os.chdir(f"{home_dir}/.config/hlna/") os.mkdir("maps") + def check_int(number=""): """Проверка на ввод числа""" while True: @@ -231,33 +232,56 @@ def config(list_config=list_config): max_players = check_int("Укажите максимальное количество игроков: \n") if max_players == 0: max_players = 70 - - yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override) + + systemd_unit_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override) + # yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override) -def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override): - settings_hlna = [ - { - 'map' : map_s, - 'Cluster' : cluster_server, - 'SessionName' : name_server, - 'Port' : port_server, - 'QueryPort' : query_port, - 'RCONEnabled' : rcon_enabled, - 'RCONPort' : rcon_port, - 'ServerAdminPassword': adminpassword_server, - 'ServerPassword' : password_server, - 'MaxPlayers' : max_players, - 'ModsId' : mods_id, - 'Listen' : listen_server, - 'ServerPath' : dir_server, - 'clusterid' : cluster_id, - 'clusterdir' : cluster_dir_override - } - ] - with open(dir_config + f"{name_server}", 'w') as yamlfile: - yaml.dump(settings_hlna, yamlfile) - print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL) +def systemd_unit_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override) +unit = f'''[Unit] +Description=ARK: Survival Evolved dedicated server +Wants=network-online.target +After=syslog.target network.target nss-lookup.target network-online.target + +[Service] +ExecStartPre=/home/steam/steamcmd +login anonymous +force_install_dir /home/steam/servers/ark +app_update 376030 +quit +ExecStart=/home/steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName= -server -log +WorkingDirectory=/home/steam/servers/ark/ShooterGame/Binaries/Linux +LimitNOFILE=100000 +ExecReload=/bin/kill -s HUP $MAINPID +ExecStop=/bin/kill -s INT $MAINPID +User=steam +Group=steam + +[Install] +WantedBy=multi-user.target\ +''' +with open(unit, 'w') as systemd_unit: + systemd_unit.write(unit) +os.system('systemctl daemon-reload') +# def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override): +# settings_hlna = [ +# { +# 'map' : map_s, +# 'Cluster' : cluster_server, +# 'SessionName' : name_server, +# 'Port' : port_server, +# 'QueryPort' : query_port, +# 'RCONEnabled' : rcon_enabled, +# 'RCONPort' : rcon_port, +# 'ServerAdminPassword': adminpassword_server, +# 'ServerPassword' : password_server, +# 'MaxPlayers' : max_players, +# 'ModsId' : mods_id, +# 'Listen' : listen_server, +# 'ServerPath' : dir_server, +# 'clusterid' : cluster_id, +# 'clusterdir' : cluster_dir_override +# } +# ] +# with open(dir_config + f"{name_server}", 'w') as yamlfile: +# yaml.dump(settings_hlna, yamlfile) +# print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL) def test_mod_install():