mirror of
https://github.com/GameServerManagers/LinuxGSM.git
synced 2026-04-25 06:05:57 +03:00
[GH-ISSUE #2119] [monitor] Query delay on start #1636
Labels
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/LinuxGSM#1636
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dgibbs64 on GitHub (Dec 15, 2018).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/2119
Originally assigned to: @dgibbs64 on GitHub.
As a server admin, I would like a delay on the monitor querying the game server after starting as it takes time for the server to fully boot
Is your feature request related to a problem? Please describe.
It can sometimes take a few minutes for a server that has just started to boot and be ready to receive queries.
Describe the solution you'd like
Adding a lock file with the time and a variable
querydelay=5will cause the monitor to only check the binary is running and not query the server. After 5 mins the monitor will query as normal.@Frisasky commented on GitHub (Apr 27, 2019):
source and goldsrc based game took about just few seconds on SSD, on my old develop machine HDD it took 30 seconds at most, so 1 mins are sufficient for both engine games
@joshhsoj1902 commented on GitHub (Apr 27, 2019):
This would be great, my only thought would be, make it seconds instead of minutes.
I'm a little rusty as it's been a while, but I believe I use this check in docker to determine if the service is healthy. The catch being docker will not route to a service that isn't healthy, so if the minimum was always 1 min, even for games that take 30 seconds to start, they would always need to wait the full 60 seconds before they could be connected to.
Not really the end of the world either way.
@visdmin commented on GitHub (Apr 27, 2019):
The amout and type of addons with Rust server can hightly effect the boot time, so i would try to find some other method to determinate if the server startup is finnished, than stasic time / sleep varriable. If i have time next week i can try to find ways to do this with Rust server at least.
Best regards,
Visdmin
@royobrecht commented on GitHub (Apr 27, 2019):
It doesn't matter to me. 1-2 minutes. It's not like it's a critical app if players can't get on the server for a couple of minutes. In fact, I have a cron to check if it's up every 2 minutes.
I do not get any false boot-time alerts from hl2dm running LinuxGSM. The way I have it configured is to start the game server at boot in cron using the @reboot directive. Server is running Ubuntu 18.04.
@sholan commented on GitHub (Apr 27, 2019):
We ran into the same issue with a mediumly modded MC server (taking from 1'30" to 3' to boot).
We "solved" it by increasing the fn_monitor_loop queryattempt range from 1..5 to 1..13
This may give an idea of the time needed for an MC server.
After paying attention to your request on discord, I suggest this wait time to be a lgsm parameter for best performance.
@mrpoundsign commented on GitHub (Apr 28, 2019):
Just for some clarity, I believe the purpose of the monitor command is to ensure the server is running, and automatically restart it if not.
I think a 5-10 minute window after server start should be fine for any server. After the initial server start, this check would not be needed. This means you still get immediate monitoring, it's just a cool-down period before monitoring begins after the server is started.
This is not a problem for most games, but for the ones that have a long startup time (e.g. Rust) or those running in virtual servers. Having it be configurable is fine as well, but I don't think there's a lot of benefit to automatically restarting a server if it's crashing within 10 minutes of starting; You have a deeper problem if it won't stay up for 10 minutes.
Additionally it would be fine to have it report the server is down, but not kill/restart within that initial time window. This should satisfy most of what people want.
@jamiew0w commented on GitHub (Apr 28, 2019):
Thanks for making this Daniel, I was chatting with you a few days ago and this came up as a QOL improvement.
Currently I'm running a bunch of stuff via VM's and things like Rust can take minutes to boot up, especially if you're generating a new wipe on a large map.
I think a good way of doing it may be having a new function within the instance settings called 'nokillboot' or 'slowboot' or something with a seconds value. If the setting isn't there then it works as normal. Not sure how hard it would be to implement, I bypassed it the same way as @sholan above but then I updated LGSM lately and overwrote it lol.
Thanks as always for your work on this!
@dgibbs64 commented on GitHub (Apr 28, 2019):
@jamiew0w there will be a new setting available called
querydelay. Each server will have a minimum of 1 min delay however heavier servers will default to 5 mins@dgibbs64 commented on GitHub (Apr 28, 2019):
@joshhsoj1902 im going for minutes for simplicity to the end user. Should the binary file check fail monitor will still fail anyway after 1 min should it still fail then a reboot will happen.
@dgibbs64 commented on GitHub (Apr 28, 2019):
@Vis25 I tend to prefer game server agnostic solutions first. However, if there is a way to detect the server is ready by say looking for a line in logs that confirm the server is online that would be a great help and support for more servers could be added over time. A max timer would still be needed to prevent the a server crash looping issue going undetected but maybe could make it something like 10 mins.
@dgibbs64 commented on GitHub (Apr 28, 2019):
@sholan I will put Minecraft on a 5 min delay
@Grimston commented on GitHub (Apr 28, 2019):
For rust if it's not modded I would go with 10 minutes. If we can check if oxide was installed then bump up to 15 minutes just to be safe.
For an expected log line it would be "BradleyAPC Spawned at" as this always happens when it's finished loading.
@JediNarwals commented on GitHub (Apr 29, 2019):
Arma 3 typically takes 30-45 seconds to come online with a good server with no mods. A 2 to 5 minute delay would be the average for mid to low end servers and modded servers.
@github-actions[bot] commented on GitHub (Sep 27, 2021):
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.