Browse Source

Merge branch 'daemon-mode' of https://github.com/tcatm/bitcoin

miguelfreitas
Gavin Andresen 14 years ago
parent
commit
1bf9b3b06f
  1. 63
      init.cpp
  2. 1
      util.cpp
  3. 1
      util.h

63
init.cpp

@ -74,35 +74,14 @@ void HandleSIGTERM(int)
#ifndef GUI #ifndef GUI
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
for (int i = 1; i < argc; i++) bool fRet = false;
if (!IsSwitchChar(argv[i][0])) fRet = AppInit(argc, argv);
fCommandLine = true;
fDaemon = !fCommandLine;
#ifdef __WXGTK__ if (fRet && fDaemon)
if (!fCommandLine)
{
// Daemonize
pid_t pid = fork();
if (pid < 0)
{
fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
return 1;
}
if (pid > 0)
pthread_exit((void*)0); pthread_exit((void*)0);
} }
#endif #endif
if (!AppInit(argc, argv))
return 1;
while (!fShutdown)
Sleep(1000000);
return 0;
}
#endif
bool AppInit(int argc, char* argv[]) bool AppInit(int argc, char* argv[])
{ {
bool fRet = false; bool fRet = false;
@ -177,8 +156,10 @@ bool AppInit2(int argc, char* argv[])
" -connect=<ip> \t\t " + _("Connect only to the specified node\n") + " -connect=<ip> \t\t " + _("Connect only to the specified node\n") +
" -nolisten \t " + _("Don't accept connections from outside\n") + " -nolisten \t " + _("Don't accept connections from outside\n") +
" -paytxfee=<amt> \t " + _("Fee per KB to add to transactions you send\n") + " -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") + " -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") + " -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") + " -testnet \t\t " + _("Use the test network\n") +
" -rpcuser=<user> \t " + _("Username for JSON-RPC connections\n") + " -rpcuser=<user> \t " + _("Username for JSON-RPC connections\n") +
" -rpcpassword=<pw>\t " + _("Password for JSON-RPC connections\n") + " -rpcpassword=<pw>\t " + _("Password for JSON-RPC connections\n") +
@ -213,6 +194,19 @@ bool AppInit2(int argc, char* argv[])
fDebug = GetBoolArg("-debug"); fDebug = GetBoolArg("-debug");
fDaemon = GetBoolArg("-daemon");
if (fDaemon)
fServer = true;
else
fServer = GetBoolArg("-server");
/* force fServer and fDaemon when running without GUI */
#ifndef GUI
fServer = true;
fDaemon = true;
#endif
fPrintToConsole = GetBoolArg("-printtoconsole"); fPrintToConsole = GetBoolArg("-printtoconsole");
fPrintToDebugger = GetBoolArg("-printtodebugger"); fPrintToDebugger = GetBoolArg("-printtodebugger");
@ -220,12 +214,31 @@ bool AppInit2(int argc, char* argv[])
fNoListen = GetBoolArg("-nolisten"); fNoListen = GetBoolArg("-nolisten");
for (int i = 1; i < argc; i++)
if (!IsSwitchChar(argv[i][0]))
fCommandLine = true;
if (fCommandLine) if (fCommandLine)
{ {
int ret = CommandLineRPC(argc, argv); int ret = CommandLineRPC(argc, argv);
exit(ret); exit(ret);
} }
#ifndef GUI
if (fDaemon)
{
// Daemonize
pid_t pid = fork();
if (pid < 0)
{
fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
return false;
}
if (pid > 0)
return true;
}
#endif
if (!fDebug && !pszSetDataDir[0]) if (!fDebug && !pszSetDataDir[0])
ShrinkDebugFile(); ShrinkDebugFile();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
@ -443,7 +456,7 @@ bool AppInit2(int argc, char* argv[])
if (!CreateThread(StartNode, NULL)) if (!CreateThread(StartNode, NULL))
wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin"); wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin");
if (GetBoolArg("-server") || fDaemon) if (fServer)
CreateThread(ThreadRPCServer, NULL); CreateThread(ThreadRPCServer, NULL);
#if defined(__WXMSW__) && defined(GUI) #if defined(__WXMSW__) && defined(GUI)

1
util.cpp

@ -14,6 +14,7 @@ char pszSetDataDir[MAX_PATH] = "";
bool fRequestShutdown = false; bool fRequestShutdown = false;
bool fShutdown = false; bool fShutdown = false;
bool fDaemon = false; bool fDaemon = false;
bool fServer = false;
bool fCommandLine = false; bool fCommandLine = false;
string strMiscWarning; string strMiscWarning;
bool fTestNet = false; bool fTestNet = false;

1
util.h

@ -143,6 +143,7 @@ extern char pszSetDataDir[MAX_PATH];
extern bool fRequestShutdown; extern bool fRequestShutdown;
extern bool fShutdown; extern bool fShutdown;
extern bool fDaemon; extern bool fDaemon;
extern bool fServer;
extern bool fCommandLine; extern bool fCommandLine;
extern string strMiscWarning; extern string strMiscWarning;
extern bool fTestNet; extern bool fTestNet;

Loading…
Cancel
Save