|
|
|
@ -163,6 +163,7 @@ int main(int argc, const char** argv ) |
|
|
|
HANDLE job_handle; |
|
|
|
HANDLE wait_handles[NUM_HANDLES]= {0}; |
|
|
|
PROCESS_INFORMATION process_info= {0}; |
|
|
|
BOOL nocore= FALSE; |
|
|
|
|
|
|
|
sprintf(safe_process_name, "safe_process[%d]", pid); |
|
|
|
|
|
|
|
@ -199,18 +200,22 @@ int main(int argc, const char** argv ) |
|
|
|
} |
|
|
|
break; |
|
|
|
} else { |
|
|
|
if ( strcmp(arg, "--verbose") == 0 ) |
|
|
|
if (strcmp(arg, "--verbose") == 0) |
|
|
|
verbose++; |
|
|
|
else if ( strncmp(arg, "--parent-pid", 10) == 0 ) |
|
|
|
{ |
|
|
|
/* Override parent_pid with a value provided by user */ |
|
|
|
const char* start; |
|
|
|
else if (strncmp(arg, "--parent-pid", 10) == 0) |
|
|
|
{ |
|
|
|
/* Override parent_pid with a value provided by user */ |
|
|
|
const char* start; |
|
|
|
if ((start= strstr(arg, "=")) == NULL) |
|
|
|
die("Could not find start of option value in '%s'", arg); |
|
|
|
start++; /* Step past = */ |
|
|
|
if ((parent_pid= atoi(start)) == 0) |
|
|
|
die("Invalid value '%s' passed to --parent-id", start); |
|
|
|
} |
|
|
|
die("Could not find start of option value in '%s'", arg); |
|
|
|
start++; /* Step past = */ |
|
|
|
if ((parent_pid= atoi(start)) == 0) |
|
|
|
die("Invalid value '%s' passed to --parent-id", start); |
|
|
|
} |
|
|
|
else if (strcmp(arg, "--nocore") == 0) |
|
|
|
{ |
|
|
|
nocore= TRUE; |
|
|
|
} |
|
|
|
else |
|
|
|
die("Unknown option: %s", arg); |
|
|
|
} |
|
|
|
@ -248,6 +253,11 @@ int main(int argc, const char** argv ) |
|
|
|
&jeli, sizeof(jeli)) == 0) |
|
|
|
message("SetInformationJobObject failed, continue anyway..."); |
|
|
|
|
|
|
|
/* Avoid popup box */ |
|
|
|
if (nocore) |
|
|
|
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX |
|
|
|
| SEM_NOOPENFILEERRORBOX); |
|
|
|
|
|
|
|
#if 0
|
|
|
|
/* Setup stdin, stdout and stderr redirect */ |
|
|
|
si.dwFlags= STARTF_USESTDHANDLES; |
|
|
|
|