=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/ox100start.c,v retrieving revision 1.3 retrieving revision 1.9 diff -u -p -r1.3 -r1.9 --- OpenXM/src/kxx/ox100start.c 2003/07/21 12:41:21 1.3 +++ OpenXM/src/kxx/ox100start.c 2020/10/07 07:47:23 1.9 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kxx/ox100start.c,v 1.2 2003/07/21 11:56:33 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/ox100start.c,v 1.8 2016/03/31 05:27:34 takayama Exp $ */ /* Moved from misc-2003/07/cygwin/test.c */ #include #include @@ -9,7 +9,9 @@ #include #include #include +#include #include "ox_pathfinder.h" +#include "mysig.h" static void usage(void); static int forkExec(char **argv); @@ -17,9 +19,11 @@ void *sGC_malloc(int size) { return ((void *)malloc(size)); } +int Quiet = 0; +static int EngineLogToStdout = 0; extern char **environ; -main(int argc,char *argv[]) { +void main(int argc,char *argv[]) { char *s; char s2[1024]; char buf[1024]; @@ -29,16 +33,17 @@ main(int argc,char *argv[]) { int i; char *serverName; + /* - if (Verbose_get_home) { printf("ostype=%s\n",getOStypes()); printf("OpenXM_HOME=%s\n",getOpenXM_HOME()); printf("sm lib =%s\n",get_sm1_lib_path()); printf("k0 lib =%s\n",get_k0_lib_path()); printf("ox_asir =%s\n",get_ox_asir_path()); - } */ + ox_pathfinderVerbose(1); + /* Initialize parameters */ serverName = NULL; aaa = NULL; @@ -57,6 +62,11 @@ main(int argc,char *argv[]) { aaa = getServerEnv(serverName); }else if (strcmp(argv[i],"-nox")==0) { ox_pathfinderNoX(1); + }else if (strcmp(argv[i],"-engineLogToStdout")==0) { + ox_pathfinderEngineLogToStdout(1); + EngineLogToStdout = 1; + }else if (strcmp(argv[i],"-quiet")==0) { + Quiet = 1; ox_pathfinder_quiet(); }else{ fprintf(stderr,"Unknown option.\n"); usage(); @@ -74,7 +84,7 @@ static void myforkwait() { int status; int pid; int i,j; - signal(SIGCHLD,SIG_IGN); + mysignal(SIGCHLD,SIG_IGN); pid = wait(&status); fprintf(stderr,"Child process %d is exiting.\n",pid); for (i=0; i 0) Myforkcp--; } } - signal(SIGCHLD,myforkwait); + mysignal(SIGCHLD,myforkwait); } static void usage() { - fprintf(stderr,"oxstart100 -oxserver xxx [-e args]\n"); + fprintf(stderr,"ox100start -oxserver xxx [-e args]\n"); fprintf(stderr,"Examples: \n"); - fprintf(stderr," oxstart100 -oxserver bin/ox_sm1 -e -reverse -data 3010 --control 3012 -pass 1121343432434 \n"); + fprintf(stderr," ox100start -oxserver bin/ox_sm1 -e -reverse -data 3010 --control 3012 -pass 1121343432434 \n"); + fprintf(stderr," ox100start -nox -engineLogToStdout -oxserver bin/ox_sm1 -e -data 3010 \n"); + } static int forkExec(char **argv) { @@ -106,7 +118,7 @@ static int forkExec(char **argv) { if (m&2) { /* Do not call singal to turn around a trouble on cygwin. BUG. */ }else{ - signal(SIGCHLD,myforkwait); /* to kill Zombie */ + mysignal(SIGCHLD,myforkwait); /* to kill Zombie */ } Myforkchildren[Myforkcp++] = pid; if (Myforkcp >= MYFORKCP_SIZE-1) { @@ -121,12 +133,31 @@ static int forkExec(char **argv) { sigaddset(&sss,SIGINT); sigprocmask(SIG_BLOCK,&sss,NULL); } - if (ox_pathfinderNoX(-1)) { + if (ox_pathfinderNoX(-1) && (!EngineLogToStdout)) { FILE *null; null = fopen("/dev/null","wb"); dup2(fileno(null),1); dup2(fileno(null),2); } + + /* + { + int i; + i = 0; + fprintf(stderr,"argv-----------\n"); + while (argv[i] != NULL) { + fprintf(stderr,"%s ",argv[i++]); + } + fprintf(stderr,"\n"); + i = 0; + fprintf(stderr,"environ-----------\n"); + while (environ[i] != NULL) { + fprintf(stderr,"%s ",environ[i++]); + } + fprintf(stderr,"\n"); + } + */ + execve(argv[0],argv,environ); /* This place will never be reached unless execv fails. */ fprintf(stderr,"forkExec fails: ");