X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=nssm.h;h=5b89a48d9dd62fc304d40099ee779031d9dbea14;hb=53371f115d94fbbc7e5cb60853b9e4a5d356d4b0;hp=afff8c429efcaee17eeace001d269c21a6fcb030;hpb=23b8173ce06a843f18a9269fc6f7d4d0d224cd4c;p=nssm.git diff --git a/nssm.h b/nssm.h index afff8c4..5b89a48 100644 --- a/nssm.h +++ b/nssm.h @@ -5,34 +5,38 @@ #include #include #include +#include #include +#include "service.h" #include "event.h" +#include "imports.h" #include "messages.h" #include "process.h" #include "registry.h" +#include "settings.h" #include "io.h" -#include "service.h" #include "gui.h" -int str_equiv(const char *, const char *); - -#define NSSM "nssm" -#define NSSM_VERSION "2.16" -#define NSSM_VERSIONINFO 2,16,0,0 -#define NSSM_DATE "2012-12-01" +int str_equiv(const TCHAR *, const TCHAR *); +void strip_basename(TCHAR *); +int str_number(const TCHAR *, unsigned long *, TCHAR **); +int str_number(const TCHAR *, unsigned long *); +int num_cpus(); +int usage(int); -/* - MSDN says the commandline in CreateProcess() is limited to 32768 characters - and the application name to MAX_PATH. - A registry key is limited to 255 characters. - A registry value is limited to 16383 characters. - Therefore we limit the service name to accommodate the path under HKLM. -*/ -#define EXE_LENGTH MAX_PATH -#define CMD_LENGTH 32768 -#define KEY_LENGTH 255 -#define VALUE_LENGTH 16383 -#define SERVICE_NAME_LENGTH KEY_LENGTH - 55 +#define NSSM _T("NSSM") +#ifdef _WIN64 +#define NSSM_ARCHITECTURE _T("64-bit") +#else +#define NSSM_ARCHITECTURE _T("32-bit") +#endif +#ifdef _DEBUG +#define NSSM_DEBUG _T(" debug") +#else +#define NSSM_DEBUG _T("") +#endif +#define NSSM_CONFIGURATION NSSM_ARCHITECTURE NSSM_DEBUG +#include "version.h" /* Throttle the restart of the service if it stops before this many @@ -42,17 +46,17 @@ int str_equiv(const char *, const char *); /* How many milliseconds to wait for the application to die after sending - a Control-C event to its console. + a Control-C event to its console. Override in registry. */ #define NSSM_KILL_CONSOLE_GRACE_PERIOD 1500 /* How many milliseconds to wait for the application to die after posting to - its windows' message queues. + its windows' message queues. Override in registry. */ #define NSSM_KILL_WINDOW_GRACE_PERIOD 1500 /* How many milliseconds to wait for the application to die after posting to - its threads' message queues. + its threads' message queues. Override in registry. */ #define NSSM_KILL_THREADS_GRACE_PERIOD 1500 @@ -65,4 +69,28 @@ int str_equiv(const char *, const char *); #define NSSM_STOP_METHOD_THREADS (1 << 2) #define NSSM_STOP_METHOD_TERMINATE (1 << 3) +/* Startup types. */ +#define NSSM_STARTUP_AUTOMATIC 0 +#define NSSM_STARTUP_DELAYED 1 +#define NSSM_STARTUP_MANUAL 2 +#define NSSM_STARTUP_DISABLED 3 + +/* Exit actions. */ +#define NSSM_EXIT_RESTART 0 +#define NSSM_EXIT_IGNORE 1 +#define NSSM_EXIT_REALLY 2 +#define NSSM_EXIT_UNCLEAN 3 +#define NSSM_NUM_EXIT_ACTIONS 4 + +/* Process priority. */ +#define NSSM_REALTIME_PRIORITY 0 +#define NSSM_HIGH_PRIORITY 1 +#define NSSM_ABOVE_NORMAL_PRIORITY 2 +#define NSSM_NORMAL_PRIORITY 3 +#define NSSM_BELOW_NORMAL_PRIORITY 4 +#define NSSM_IDLE_PRIORITY 5 + +/* How many milliseconds to wait before updating service status. */ +#define NSSM_SERVICE_STATUS_DEADLINE 20000 + #endif