diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | src/Root.cpp | 13 | ||||
-rw-r--r-- | src/main.cpp | 3 |
3 files changed, 7 insertions, 11 deletions
@@ -25,7 +25,7 @@ This Linux script will download the correct binary from the project site. sh -c "$(wget -O - https://raw.githubusercontent.com/cuberite/cuberite/master/easyinstall.sh)" #### Compiling - - You can compile automatically for Linux with the `compile.sh` script. The script is described below. + - You can compile automatically for Linux / *nix with the `compile.sh` script. The script is described below. - You can also compile manually. See [COMPILING.md](https://github.com/cuberite/cuberite/blob/master/COMPILING.md). Compiling may provide better performance performance (1.5-3x as fast) and it supports more operating systems. diff --git a/src/Root.cpp b/src/Root.cpp index 71d5875a6..2465cdfd4 100644 --- a/src/Root.cpp +++ b/src/Root.cpp @@ -92,7 +92,8 @@ void cRoot::InputThread(cRoot & a_Params) } // We have come here because the std::cin has received an EOF / a terminate signal has been sent, and the server is still running - if (!std::cin.good()) + // Ignore this when running as a service, cin was never opened in that case + if (!std::cin.good() && !m_RunAsService) { // Stop the server: a_Params.QueueExecuteConsoleCommand("stop"); @@ -232,15 +233,7 @@ void cRoot::Start(std::unique_ptr<cSettingsRepositoryInterface> a_OverridesRepo) { m_StopEvent.Wait(); - if (m_TerminateEventRaised && m_RunAsService) - { - // Dont kill if running as a service - m_TerminateEventRaised = false; - } - else - { - break; - } + break; } // Stop the server: diff --git a/src/main.cpp b/src/main.cpp index 06f979097..1b77e2480 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -495,6 +495,9 @@ int main(int argc, char ** argv) } #endif + // Make sure m_RunAsService is set correctly before checking it's value + ParseArguments(argc, argv); + // Attempt to run as a service if (cRoot::m_RunAsService) { |