diff --git a/daemon/daemon.cc b/daemon/daemon.cc index 2af8da2be2e311bd4c23b7bd8f54943d316b3e5e..84201448bc09ee408aaf4903a576f1d692514417 100644 --- a/daemon/daemon.cc +++ b/daemon/daemon.cc @@ -706,6 +706,7 @@ char *Daemon::readLine(const char *prompt) { #ifdef HAVE_READLINE return readline(prompt); #else + if (cin.eof()) return NULL; cout << prompt; char *buff = (char *) malloc(sLineSize); cin.getline(buff, sLineSize); @@ -735,6 +736,10 @@ int Daemon::run() { if (mServerFd == -1 && ret != NULL) { free(ret); } + if (!ret && mRunning) { + mRunning = false; // ctrl+d + cout << "Quitting..." << endl; + } } stopThread(); return 0;