summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/instance.cc
diff options
context:
space:
mode:
authorunknown <reggie@ubuntu.(none)>2005-09-13 14:53:19 -0500
committerunknown <reggie@ubuntu.(none)>2005-09-13 14:53:19 -0500
commitc6dfe79beba3a4c03468d6e45aface45dfc38967 (patch)
tree9526667b98692215b3c525821064ff5229e93cd8 /server-tools/instance-manager/instance.cc
parent69b1940eefad9f9badbce78104a0fdc4780a05eb (diff)
downloadmariadb-git-c6dfe79beba3a4c03468d6e45aface45dfc38967.tar.gz
fixed the service bits of the IM
server-tools/instance-manager/IMService.cpp: * setting username and password to NULL so that the IM runs at LocalSystem (this should be changed soon) * implemented stop service by raising a sigterm * implemented start service by loading options and calling manager() server-tools/instance-manager/IMService.h: changed the sig for Run() server-tools/instance-manager/WindowsService.cpp: default debugging to false changed the sig of RuN() server-tools/instance-manager/WindowsService.h: change the sig of run() server-tools/instance-manager/instance.cc: * remove the inclusion of process.h * concat all args into a single buffer to pass to CreateProcess server-tools/instance-manager/instance_options.cc: quoting the binary to handle paths with quotes server-tools/instance-manager/listener.cc: use a timeval for select so that our select will only run for 100 msec before we check to see if we are shutting down server-tools/instance-manager/mysqlmanager.cc: if we are given the stand alone option, then run the manager as standalone server-tools/instance-manager/options.cc: Added stand alone command line arg server-tools/instance-manager/options.h: Added stand alone command line arg
Diffstat (limited to 'server-tools/instance-manager/instance.cc')
-rw-r--r--server-tools/instance-manager/instance.cc28
1 files changed, 12 insertions, 16 deletions
diff --git a/server-tools/instance-manager/instance.cc b/server-tools/instance-manager/instance.cc
index 7f705bac1c1..5e1c3d2ea9f 100644
--- a/server-tools/instance-manager/instance.cc
+++ b/server-tools/instance-manager/instance.cc
@@ -18,9 +18,6 @@
#pragma implementation
#endif
-#ifdef __WIN__
-#include <process.h>
-#endif
#include "instance.h"
#include "mysql_manager_error.h"
@@ -171,25 +168,24 @@ static int start_process(Instance_options *instance_options,
ZeroMemory(pi, sizeof(PROCESS_INFORMATION));
int cmdlen= 0;
- for (int i= 1; instance_options->argv[i] != 0; i++)
- cmdlen+= strlen(instance_options->argv[i]) + 1;
- cmdlen++; /* we have to add a single space for CreateProcess (see docs) */
+ for (int i= 0; instance_options->argv[i] != 0; i++)
+ cmdlen+= strlen(instance_options->argv[i]) + 3;
+ cmdlen++; /* make room for the null */
+
+ char *cmdline= new char[cmdlen];
+ if (cmdline == NULL)
+ return 1;
- char *cmdline= NULL;
- if (cmdlen > 0)
+ for (int i= 0; instance_options->argv[i] != 0; i++)
{
- cmdline= new char[cmdlen];
- cmdline[0]= 0;
- for (int i= 1; instance_options->argv[i] != 0; i++)
- {
- strcat(cmdline, " ");
- strcat(cmdline, instance_options->argv[i]);
- }
+ strcat(cmdline, "\"");
+ strcat(cmdline, instance_options->argv[i]);
+ strcat(cmdline, "\" ");
}
/* Start the child process */
BOOL result=
- CreateProcess(instance_options->mysqld_path, /* File to execute */
+ CreateProcess(NULL, /* Put it all in cmdline */
cmdline, /* Command line */
NULL, /* Process handle not inheritable */
NULL, /* Thread handle not inheritable */