diff options
author | unknown <reggie@ubuntu.(none)> | 2005-09-13 14:53:19 -0500 |
---|---|---|
committer | unknown <reggie@ubuntu.(none)> | 2005-09-13 14:53:19 -0500 |
commit | c6dfe79beba3a4c03468d6e45aface45dfc38967 (patch) | |
tree | 9526667b98692215b3c525821064ff5229e93cd8 /server-tools/instance-manager/instance.cc | |
parent | 69b1940eefad9f9badbce78104a0fdc4780a05eb (diff) | |
download | mariadb-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.cc | 28 |
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 */ |