git://git.iain.cx/iain
/
nssm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allocate a new console for stdin.
[nssm.git]
/
service.h
diff --git
a/service.h
b/service.h
index
e4049db
..
4eed6ad
100644
(file)
--- a/
service.h
+++ b/
service.h
@@
-6,16
+6,16
@@
/*
\r
MSDN says the commandline in CreateProcess() is limited to 32768 characters
\r
and the application name to MAX_PATH.
\r
/*
\r
MSDN says the commandline in CreateProcess() is limited to 32768 characters
\r
and the application name to MAX_PATH.
\r
+ A service name and service display name are limited to 256 characters.
\r
A registry key is limited to 255 characters.
\r
A registry value is limited to 16383 characters.
\r
Therefore we limit the service name to accommodate the path under HKLM.
\r
*/
\r
A registry key is limited to 255 characters.
\r
A registry value is limited to 16383 characters.
\r
Therefore we limit the service name to accommodate the path under HKLM.
\r
*/
\r
-#define EXE_LENGTH
MAX_PA
TH
\r
+#define EXE_LENGTH
PATH_LENG
TH
\r
#define CMD_LENGTH 32768
\r
#define KEY_LENGTH 255
\r
#define VALUE_LENGTH 16383
\r
#define CMD_LENGTH 32768
\r
#define KEY_LENGTH 255
\r
#define VALUE_LENGTH 16383
\r
-#define SERVICE_NAME_LENGTH KEY_LENGTH - 55
\r
-#define SERVICE_DISPLAYNAME_LENGTH 256
\r
+#define SERVICE_NAME_LENGTH 256
\r
\r
#define ACTION_LEN 16
\r
\r
\r
#define ACTION_LEN 16
\r
\r
@@
-28,10
+28,14
@@
#define NSSM_SHARE_INTERACTIVE_PROCESS NSSM_WIN32_SHARE_PROCESS _T("|") NSSM_INTERACTIVE_PROCESS
\r
#define NSSM_UNKNOWN _T("?")
\r
\r
#define NSSM_SHARE_INTERACTIVE_PROCESS NSSM_WIN32_SHARE_PROCESS _T("|") NSSM_INTERACTIVE_PROCESS
\r
#define NSSM_UNKNOWN _T("?")
\r
\r
+#define NSSM_ROTATE_OFFLINE 0
\r
+#define NSSM_ROTATE_ONLINE 1
\r
+#define NSSM_ROTATE_ONLINE_ASAP 2
\r
+
\r
typedef struct {
\r
bool native;
\r
TCHAR name[SERVICE_NAME_LENGTH];
\r
typedef struct {
\r
bool native;
\r
TCHAR name[SERVICE_NAME_LENGTH];
\r
- TCHAR displayname[SERVICE_
DISPLAY
NAME_LENGTH];
\r
+ TCHAR displayname[SERVICE_NAME_LENGTH];
\r
TCHAR description[VALUE_LENGTH];
\r
unsigned long startup;
\r
TCHAR *username;
\r
TCHAR description[VALUE_LENGTH];
\r
unsigned long startup;
\r
TCHAR *username;
\r
@@
-39,31
+43,42
@@
typedef struct {
TCHAR *password;
\r
size_t passwordlen;
\r
unsigned long type;
\r
TCHAR *password;
\r
size_t passwordlen;
\r
unsigned long type;
\r
- TCHAR image[
MAX_PA
TH];
\r
+ TCHAR image[
PATH_LENG
TH];
\r
TCHAR exe[EXE_LENGTH];
\r
TCHAR flags[VALUE_LENGTH];
\r
TCHAR exe[EXE_LENGTH];
\r
TCHAR flags[VALUE_LENGTH];
\r
- TCHAR dir[
MAX_PA
TH];
\r
+ TCHAR dir[
DIR_LENG
TH];
\r
TCHAR *env;
\r
TCHAR *env;
\r
+ __int64 affinity;
\r
unsigned long envlen;
\r
TCHAR *env_extra;
\r
unsigned long env_extralen;
\r
unsigned long envlen;
\r
TCHAR *env_extra;
\r
unsigned long env_extralen;
\r
- TCHAR stdin_path[MAX_PATH];
\r
+ unsigned long priority;
\r
+ TCHAR stdin_path[PATH_LENGTH];
\r
unsigned long stdin_sharing;
\r
unsigned long stdin_disposition;
\r
unsigned long stdin_flags;
\r
unsigned long stdin_sharing;
\r
unsigned long stdin_disposition;
\r
unsigned long stdin_flags;
\r
- TCHAR stdout_path[
MAX_PA
TH];
\r
+ TCHAR stdout_path[
PATH_LENG
TH];
\r
unsigned long stdout_sharing;
\r
unsigned long stdout_disposition;
\r
unsigned long stdout_flags;
\r
unsigned long stdout_sharing;
\r
unsigned long stdout_disposition;
\r
unsigned long stdout_flags;
\r
- TCHAR stderr_path[MAX_PATH];
\r
+ HANDLE stdout_pipe;
\r
+ HANDLE stdout_thread;
\r
+ unsigned long stdout_tid;
\r
+ TCHAR stderr_path[PATH_LENGTH];
\r
unsigned long stderr_sharing;
\r
unsigned long stderr_disposition;
\r
unsigned long stderr_flags;
\r
unsigned long stderr_sharing;
\r
unsigned long stderr_disposition;
\r
unsigned long stderr_flags;
\r
+ HANDLE stderr_pipe;
\r
+ HANDLE stderr_thread;
\r
+ unsigned long stderr_tid;
\r
bool rotate_files;
\r
bool rotate_files;
\r
+ unsigned long rotate_stdout_online;
\r
+ unsigned long rotate_stderr_online;
\r
unsigned long rotate_seconds;
\r
unsigned long rotate_bytes_low;
\r
unsigned long rotate_bytes_high;
\r
unsigned long default_exit_action;
\r
unsigned long rotate_seconds;
\r
unsigned long rotate_bytes_low;
\r
unsigned long rotate_bytes_high;
\r
unsigned long default_exit_action;
\r
+ unsigned long restart_delay;
\r
unsigned long throttle_delay;
\r
unsigned long stop_method;
\r
unsigned long kill_console_delay;
\r
unsigned long throttle_delay;
\r
unsigned long stop_method;
\r
unsigned long kill_console_delay;
\r
@@
-85,13
+100,21
@@
typedef struct {
LARGE_INTEGER throttle_duetime;
\r
FILETIME creation_time;
\r
FILETIME exit_time;
\r
LARGE_INTEGER throttle_duetime;
\r
FILETIME creation_time;
\r
FILETIME exit_time;
\r
+ TCHAR *initial_env;
\r
} nssm_service_t;
\r
\r
void WINAPI service_main(unsigned long, TCHAR **);
\r
TCHAR *service_control_text(unsigned long);
\r
} nssm_service_t;
\r
\r
void WINAPI service_main(unsigned long, TCHAR **);
\r
TCHAR *service_control_text(unsigned long);
\r
+TCHAR *service_status_text(unsigned long);
\r
void log_service_control(TCHAR *, unsigned long, bool);
\r
unsigned long WINAPI service_control_handler(unsigned long, unsigned long, void *, void *);
\r
\r
void log_service_control(TCHAR *, unsigned long, bool);
\r
unsigned long WINAPI service_control_handler(unsigned long, unsigned long, void *, void *);
\r
\r
+int affinity_mask_to_string(__int64, TCHAR **);
\r
+int affinity_string_to_mask(TCHAR *, __int64 *);
\r
+unsigned long priority_mask();
\r
+int priority_constant_to_index(unsigned long);
\r
+unsigned long priority_index_to_constant(int);
\r
+
\r
nssm_service_t *alloc_nssm_service();
\r
void set_nssm_service_defaults(nssm_service_t *);
\r
void cleanup_nssm_service(nssm_service_t *);
\r
nssm_service_t *alloc_nssm_service();
\r
void set_nssm_service_defaults(nssm_service_t *);
\r
void cleanup_nssm_service(nssm_service_t *);
\r