Changeset 27999
- Timestamp:
- May 18, 2010, 11:44:32 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pantasks/pantasks_server.c.in
r27965 r27999 13 13 */ 14 14 15 void special_init (int *argc, char **argv); 16 15 17 /* program-dependent initialization */ 16 18 int main (int argc, char **argv) { 17 19 18 char log_stdout[1 28], log_stderr[128];20 char log_stdout[1024], log_stderr[1024]; 19 21 pthread_t JobsAndTasksThread; 20 22 pthread_t clientsThread; … … 23 25 SockAddress Address; 24 26 25 general_init (&argc, argv); 27 strcpy (log_stdout, "stdout"); 28 strcpy (log_stderr, "stderr"); 26 29 27 // define server output log files 30 special_init (&argc, argv); 31 32 // 33 stdin = freopen ("/dev/zero", "r", stdin); 34 35 // this block redirects the actual stderr, stdout steams to the output files 28 36 if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) { 29 // redirect stdout to file unless PANTASKS_SERVER_STDOUT is 'stdout' 30 // if (strcmp (log_stdout, "stdout")) { 31 // freopen (log_stdout, 37 if (strcmp (log_stdout, "stdout")) { 38 stdout = freopen (log_stdout, "a", stdout); 39 if (!stdout) { 40 fprintf (stderr, "failed to open %s for output\n", log_stdout); 41 exit (1); 42 } 43 } 44 } 45 if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) { 46 if (strcmp (log_stderr, "stderr")) { 47 stderr = freopen (log_stderr, "a", stderr); 48 if (!stderr) { 49 fprintf (stdout, "failed to open %s for error output\n", log_stderr); 50 exit (1); 51 } 52 } 53 } 54 55 /* init for main (or only) thread */ 56 gprintInit (); 57 58 // this block changes the target of the gprint output streams 59 if (strcmp (log_stdout, "stdout")) { 32 60 gprintSetFileThisThread (GP_LOG, log_stdout); 33 61 } 34 if ( VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {62 if (strcmp (log_stderr, "stderr")) { 35 63 gprintSetFileThisThread (GP_ERR, log_stderr); 36 64 } … … 44 72 InitBasic (); 45 73 InitData (); 74 InitAstro (); 46 75 InitPantasksServer (); 47 76 … … 108 137 void welcome () { } 109 138 void program_init (int *argc, char **argv) {} 139 140 // I need to do things in a different order here to have config / freopen / gprint sequenced correctly 141 void special_init (int *argc, char **argv) { 142 143 /* init srand for rnd numbers elsewhere */ 144 long A, B; 145 A = time(NULL); 146 for (B = 0; A == time(NULL); B++); 147 srand48(B); 148 149 /* set signals */ 150 signal (SIGINT, SIG_IGN); 151 152 init_error (); 153 154 /* load config data (.ptolemyrc) */ 155 if (!ConfigInit (argc, argv)) { 156 fprintf (stderr, "can't find (.ptolemyrc,ptolemy.rc) config file. some functions will be unavailable\n"); 157 } 158 159 return; 160 }
Note:
See TracChangeset
for help on using the changeset viewer.
