Browse Source

disable -daemon on windows; bitcoind forks only with -daemon set

[added setsid() call to ui.cpp, to regain consistency with init.cpp -jgarzik]
miguelfreitas
tcatm 14 years ago committed by Jeff Garzik
parent
commit
d12ea887bc
  1. 20
      init.cpp
  2. 4
      ui.cpp

20
init.cpp

@ -78,7 +78,9 @@ int main(int argc, char* argv[]) @@ -78,7 +78,9 @@ int main(int argc, char* argv[])
fRet = AppInit(argc, argv);
if (fRet && fDaemon)
pthread_exit((void*)0);
return 0;
return 1;
}
#endif
@ -160,6 +162,8 @@ bool AppInit2(int argc, char* argv[]) @@ -160,6 +162,8 @@ bool AppInit2(int argc, char* argv[])
" -paytxfee=<amt> \t " + _("Fee per KB to add to transactions you send\n") +
#ifdef GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
#endif
#ifndef __WXMSW__
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") +
@ -196,17 +200,20 @@ bool AppInit2(int argc, char* argv[]) @@ -196,17 +200,20 @@ bool AppInit2(int argc, char* argv[])
fDebug = GetBoolArg("-debug");
#ifndef __WXMSW__
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
#endif
if (fDaemon)
fServer = true;
else
fServer = GetBoolArg("-server");
/* force fServer and fDaemon when running without GUI */
/* force fServer when running without GUI */
#ifndef GUI
fServer = true;
fDaemon = true;
#endif
fPrintToConsole = GetBoolArg("-printtoconsole");
@ -226,7 +233,7 @@ bool AppInit2(int argc, char* argv[]) @@ -226,7 +233,7 @@ bool AppInit2(int argc, char* argv[])
exit(ret);
}
#ifndef GUI
#ifndef __WXMSW__
if (fDaemon)
{
// Daemonize
@ -473,9 +480,10 @@ bool AppInit2(int argc, char* argv[]) @@ -473,9 +480,10 @@ bool AppInit2(int argc, char* argv[])
SetStartOnSystemStartup(true);
#endif
if (fDaemon)
while (!fShutdown)
#ifndef GUI
while (1)
Sleep(5000);
#endif
return true;
}

4
ui.cpp

@ -2808,6 +2808,10 @@ bool CMyApp::Initialize(int& argc, wxChar** argv) @@ -2808,6 +2808,10 @@ bool CMyApp::Initialize(int& argc, wxChar** argv)
}
if (pid > 0)
pthread_exit((void*)0);
pid_t sid = setsid();
if (sid < 0)
fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno);
}
return true;

Loading…
Cancel
Save