UGCC's Sigint Support

Post Reply
Masher
Site Admin
Posts: 3617
Joined: Thu Apr 20, 2006 2:54 pm
Location: America's Heartland
Contact:

UGCC's Sigint Support

Post by Masher »

The panel by default when stopping servers forcefully terminates the process. For servers that maintain a world state (Minecraft, Ark, 7DTD, Conan Exiles, etc.) this can cause data loss since the last data save.

To protect against this type of data loss, the panel has implemented a system called the graceful shutdown system. More details are documented in a separate topic, but this feature require RCON or some other way to tell the server to save and shutdown.

How can you gracefully shutdown a server if there's no RCON or other method to safely shutdown a server? In version 2.44 we introduced a new way to try gracefully stopping a server. The panel will try sending an interrupt signal to the server process. This is the same as pressing Ctrl+C on a console window of a server. If the server supports intercepting this signal it can save the world and shutdown gracefully. This option is available on the server's executable tab and if supported by the server can safely shutdown the server.

On Linux there is no setup required. The panel will run the operating system's kill command.

It's not so simple on Windows unfortunately. Windows requires third party tools that do some pretty hackish magic to accomplish this and some tools seem to work better than others, one tool that works well for one person may not work for you; so some experimentation may be required.

EzUGCC and the manual deploy package ship with three different programs to try.
-windows-killv2 - Seems the most reliable; 32 and 64 bit. (EzUGCC uses this by default and is pre-configured for you, the other versions are available as well though)
-windows-killv1 - Seems more reliable in some environments, 32 and 64 bit available
-sendsignal - Another option, but reserved for older panel versions for now; 64 bit only

These tools are available at:
EzUGCC: EzUGCC\logs\sendsignal\<seperate dir for each tool>
Deploy pkg: Tools\Windows\sendsignal\<seperate dir each tool>
An archive with these tools is also available at https://redirect.brainless.us/UGCC/tools

The panel expects a windows-kill.exe binary to be available in the Panel and Monitor's <logs path>\sendsignal\ folder. The panel will log a message if send signal is configured for a server and it can't find this binary.

The panel/monitor will attempt to run windows-kill.exe. If a non-zero exit code is encountered it'll rerun windows-kill.exe up to 10 times. Output will be logged to aide in troubleshooting. If after 10 attempts the server hasn't stopped the panel will terminate the server after 20 seconds.

If trying to signal a 32 bit server, you'll need to use the 32 bit version of windows-kill, just rename windows-kill32 to windows-kill.

The windows kill tools require the VC++ 2019 redistributable (if the the tools don't run and or return a large negative exit code you'll need to install the redistributable) and is available here: https://support.microsoft.com/en-us/top ... f26a218cc0
Masher
-----------
Please do not PM me unless asked to! We are a small company. If you have an issue or question it would be best to post it in the forums where it can help others in the future.

NEW Join our Discord!
Post Reply