pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.84k stars 1.74k forks source link

SIGINT via ^C isnt forwared to server process #3042

Closed DatMayo closed 3 years ago

DatMayo commented 3 years ago

Background (please complete the following information):

Describe the bug Server process won't be shutdown gracefully. This happens to all eggs whu use ^C as stop command

To Reproduce Steps to reproduce the behavior: Create a server that uses a SIGINT to be terminated (i.E. TeamSpeak), start & stop the server. The server process will be killed after some time

Expected behavior A clean shutdown

DaneEveritt commented 3 years ago

Looks like that code is missing, for now switch it to use ^SIGKILL and it'll stop. There is no process code handling though, so everything will be a SIGKILL. ^C just falls through to the normal docker stop <id> command, so if that doesn't correctly stop the instance it won't work.

DaneEveritt commented 3 years ago

Closing this as it is really more of an issue with the games themselves, please feel free to open a PR if there is a more appropriate signal that you can find for the instances that gets them to stop correctly.

sergejostir commented 3 years ago

Closing this as it is really more of an issue with the games themselves, please feel free to open a PR if there is a more appropriate signal that you can find for the instances that gets them to stop correctly.

It's not. It's an issue with container's entrypoint: https://github.com/parkervcp/images/issues/73

schrej commented 3 years ago

cc @parkervcp