Updates startup to resolve issues with stop action

Corrects call to rcon tool - the -c flag shouldn't be there.
Calls processes async and then waits on them so that signal traps can work
Traps *both* SIGINT and SIGTERM to account for wings bugs
This commit is contained in:
Daniel Barton 2023-06-30 18:47:08 +08:00
parent 9404093d5b
commit 8e2b2fe109

View File

@ -1,21 +1,21 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1", "version": "PTDL_v2",
"update_url": null "update_url": null
}, },
"exported_at": "2021-11-26T13:48:52+01:00", "exported_at": "2023-06-30T10:44:53+00:00",
"name": "Ark: Survival Evolved", "name": "Ark: Survival Evolved",
"author": "dev@shepper.fr", "author": "dev@shepper.fr",
"description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK",
"features": [ "features": [
"steam_disk_space" "steam_disk_space"
], ],
"images": [ "docker_images": {
"ghcr.io\/parkervcp\/games:source" "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source"
], },
"file_denylist": [], "file_denylist": [],
"startup": "rmv() { echo -e \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c saveworld && rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c DoExit; }; trap rmv 15; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & until echo \"waiting for rcon connection...\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD}; do sleep 5; done", "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<\/proc\/$$\/fd\/0 & wait $!; do sleep 5; done",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}",
@ -37,7 +37,8 @@
"default_value": "", "default_value": "",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "nullable|alpha_dash|between:1,100" "rules": "nullable|alpha_dash|between:1,100",
"field_type": "text"
}, },
{ {
"name": "Admin Password", "name": "Admin Password",
@ -46,7 +47,8 @@
"default_value": "PleaseChangeMe", "default_value": "PleaseChangeMe",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|alpha_dash|between:1,100" "rules": "required|alpha_dash|between:1,100",
"field_type": "text"
}, },
{ {
"name": "Server Map", "name": "Server Map",
@ -55,7 +57,8 @@
"default_value": "TheIsland", "default_value": "TheIsland",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20",
"field_type": "text"
}, },
{ {
"name": "Server Name", "name": "Server Name",
@ -64,7 +67,8 @@
"default_value": "A Pterodactyl Hosted ARK Server", "default_value": "A Pterodactyl Hosted ARK Server",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|max:128" "rules": "required|string|max:128",
"field_type": "text"
}, },
{ {
"name": "Rcon Port", "name": "Rcon Port",
@ -73,7 +77,8 @@
"default_value": "27020", "default_value": "27020",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|numeric" "rules": "required|numeric",
"field_type": "text"
}, },
{ {
"name": "Query Port", "name": "Query Port",
@ -82,7 +87,8 @@
"default_value": "27015", "default_value": "27015",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|numeric" "rules": "required|numeric",
"field_type": "text"
}, },
{ {
"name": "Auto-update server", "name": "Auto-update server",
@ -91,7 +97,8 @@
"default_value": "0", "default_value": "0",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean",
"field_type": "text"
}, },
{ {
"name": "Battle Eye", "name": "Battle Eye",
@ -100,7 +107,8 @@
"default_value": "1", "default_value": "1",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean",
"field_type": "text"
}, },
{ {
"name": "Mods", "name": "Mods",
@ -109,7 +117,8 @@
"default_value": "", "default_value": "",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string",
"field_type": "text"
}, },
{ {
"name": "App ID", "name": "App ID",
@ -118,7 +127,8 @@
"default_value": "376030", "default_value": "376030",
"user_viewable": true, "user_viewable": true,
"user_editable": false, "user_editable": false,
"rules": "nullable|numeric" "rules": "nullable|numeric",
"field_type": "text"
}, },
{ {
"name": "Additional Arguments", "name": "Additional Arguments",
@ -127,7 +137,8 @@
"default_value": "", "default_value": "",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string",
"field_type": "text"
} }
] ]
} }