Переделан запуск через systemd
This commit is contained in:
parent
041532f2ce
commit
177fc53f1d
47
hlna.py
47
hlna.py
@ -229,7 +229,6 @@ def config(list_config=list_config):
|
|||||||
if max_players == 0:
|
if max_players == 0:
|
||||||
max_players = 70
|
max_players = 70
|
||||||
|
|
||||||
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)
|
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)
|
||||||
|
|
||||||
|
|
||||||
@ -256,34 +255,38 @@ def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rco
|
|||||||
with open(dir_maps + f"{name_server}", 'w') as yamlfile:
|
with open(dir_maps + f"{name_server}", 'w') as yamlfile:
|
||||||
yaml.dump(settings_hlna, yamlfile)
|
yaml.dump(settings_hlna, yamlfile)
|
||||||
print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL)
|
print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL)
|
||||||
|
systemd_unit_create()
|
||||||
|
|
||||||
|
|
||||||
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):
|
def systemd_unit_create(name_server=list_config):
|
||||||
if not cluster_server:
|
for i in name_server:
|
||||||
|
data = read_yaml(i)
|
||||||
|
if not data['Cluster']:
|
||||||
ntff = ""
|
ntff = ""
|
||||||
else:
|
else:
|
||||||
ntff = "-NoTransferFromFiltering"
|
ntff = "-NoTransferFromFiltering"
|
||||||
unit_file = f'{dir_unit}ARK_{name_server}.service'
|
unit_file = f"{dir_unit}ARK_{data['SessionName']}.service"
|
||||||
unit_text = f'''[Unit]
|
unit_text = f'''[Unit]
|
||||||
Description=ARK: Survival Evolved dedicated server - {map_s}
|
Description=ARK: Survival Evolved dedicated server - {data['map']}
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
After=syslog.target network.target nss-lookup.target network-online.target
|
After=syslog.target network.target nss-lookup.target network-online.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStartPre=/usr/bin/steamcmd +force_install_dir {dir_server} +login anonymous +app_update 376030 +quit
|
ExecStartPre=/usr/bin/steamcmd +force_install_dir {dir_server} +login anonymous +app_update 376030 +quit
|
||||||
TimeoutStartSec=60
|
TimeoutStartSec=1200
|
||||||
ExecStart={server_dir}ShooterGameServer {map_s}?{listen_server}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?RCONEnabled={rcon_enabled}?RCONPort={rcon_port}?ServerAdminPassword={adminpassword_server}?MaxPlayers={max_players} -clusterid={cluster_id}-ClusterDirOverride={cluster_dir_override} {ntff}
|
ExecStart={server_dir}ShooterGameServer {data['map']}?listen={data['Listen']}?SessionName={data['SessionName']}?Port={data['Port']}?QueryPort={data['QueryPort']}?RCONEnabled={data['RCONEnabled']}?RCONPort={data['RCONPort']}?ServerAdminPassword={data['ServerAdminPassword']}?MaxPlayers={data['MaxPlayers']} -clusterid={data['clusterid']} -ClusterDirOverride={data['clusterdir']} {ntff}
|
||||||
WorkingDirectory={server_dir}
|
|
||||||
LimitNOFILE=100000
|
LimitNOFILE=100000
|
||||||
ExecReload=/bin/kill -s HUP $MAINPID
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
ExecStop=/bin/kill -s INT $MAINPID
|
ExecStop=/bin/kill -s INT $MAINPID
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=default.target
|
||||||
'''
|
'''
|
||||||
with open(unit_file, 'w') as systemd_unit:
|
with open(unit_file, 'w') as systemd_unit:
|
||||||
systemd_unit.write(unit_text)
|
systemd_unit.write(unit_text)
|
||||||
os.system('systemctl daemon-reload')
|
os.system(f"systemctl --user unmask ARK_{data['SessionName']}.service")
|
||||||
|
os.system(f"systemctl --user enable ARK_{data['SessionName']}.service")
|
||||||
|
os.system('systemctl --user daemon-reload')
|
||||||
|
|
||||||
|
|
||||||
def test_mod_install():
|
def test_mod_install():
|
||||||
@ -422,31 +425,9 @@ def start(m, b, name_server=list_config):
|
|||||||
else:
|
else:
|
||||||
names_serverstart = choose_map(names_serverstart)
|
names_serverstart = choose_map(names_serverstart)
|
||||||
|
|
||||||
print_line("Валидация файлов сервера")
|
|
||||||
x = os.system(f"steamcmd +force_install_dir {dir_server} +login anonymous +app_update 376030 +quit")
|
|
||||||
os.chdir(server_dir)
|
|
||||||
for i in names_serverstart:
|
for i in names_serverstart:
|
||||||
data = read_yaml(i)
|
data = read_yaml(i)
|
||||||
starting_map = dict_mapname[i]
|
os.system(f"systemctl --user start ARK_{data['SessionName']}.service")
|
||||||
print_line(data['Cluster'])
|
|
||||||
if not data['Cluster']:
|
|
||||||
ntff = ""
|
|
||||||
else:
|
|
||||||
ntff = "-NoTransferFromFiltering"
|
|
||||||
|
|
||||||
def starting(i):
|
|
||||||
os.system(f"{server_dir}ShooterGameServer {i}?SessionName={data['SessionName']}?Port={data['Port']}\
|
|
||||||
?QueryPort={data['QueryPort']}?RCONEnabled={data['RCONEnabled']}?RCONPort={data['RCONPort']}\
|
|
||||||
?ServerAdminPassword={data['ServerAdminPassword']}?MaxPlayers={data['MaxPlayers']}\
|
|
||||||
?GameModIds={data['ModsId']}?listen={data['Listen']} -clusterid={data['clusterid']}\
|
|
||||||
-ClusterDirOverride={data['clusterdir']} {ntff}")
|
|
||||||
if x == 0:
|
|
||||||
print_line("Запускаем карту" + i)
|
|
||||||
threads = threading.Thread(target=starting, args=(starting_map,))
|
|
||||||
threads.start()
|
|
||||||
else:
|
|
||||||
print(f"Карта не запущена, сервер не установлен")
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Ни одной карты не установлено")
|
print("Ни одной карты не установлено")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user