Shutting down UnrealMultiUserServer gracefully

I’ve got UnrealMultiUserServer running on a linux host as a background process. Aside from sending an -INT signal to kill the process, is there a more graceful way or best practice method to shutting it down?

Currently each time I kill the process, it leaves behind an archived session. Although this seems quite failsafe in behavior, I notice I don’t get archived sessions when shutting down the process through the Multi-User Browser.

I’ve found the event callback FReply SConcertSessionBrowser::OnShutdownServerButtonClicked() and have traced the function call to start the shutdown process called IMultiUserClientModule::Get().ShutdownConcertServer()

Unfortunately it’s the only reference in the code so it doesn’t sound like there’s a non-editor technique to call this function.

I’m guessing my only other alternative is to call it from within a blueprint. Given the Concert instance is running on a headless linux-based host, is it possible to obtain access to the remote host instance as a multi-user participant?

Following the code, there doesn’t seem to be anything special with the shutdown process. It basically loops through all existing instances and sends the kill signal.

So sending an -INT to UnrealMultiUserServer process is effectively the same.