/* * Copyright 1992 Silicon Graphics, Inc. All rights reserved. * * event server (nveventd) main * *$Revision: 1.7 $ */ /* * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; * the contents of this file may not be disclosed to third parties, copied or * duplicated in any form, in whole or in part, without the prior written * permission of Silicon Graphics, Inc. * * RESTRICTED RIGHTS LEGEND: * Use, duplication or disclosure by the Government is subject to restrictions * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data * and Computer Software clause at DFARS 252.227-7013, and/or in similar or * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - * rights reserved under the Copyright Laws of the United States. */ // Use to get syslog code names #define SYSLOG_NAMES #include #include #include #include #include #include /* #include */ #include #include #include #include "server.h" #include "cfg.h" EV_cfg *cfg; EV_server server; void done(int, ...); static char usage[] = \ "usage: nveventd [ -d [input|output|foreground] ] \ [-F ] [-n ] [-s ] \n"; static int foreground = 0; main(int argc, char **argv) { // Parse options extern char *optarg; int c; while ((c = getopt(argc, argv, "d:F:n:s:")) != -1) { switch (c) { case 'd': if (strncmp(optarg, "input", 2) == 0) server.setDumpIn(1); else if (strncmp(optarg, "output", 3) == 0) server.setDumpOut(1); else if (strncmp(optarg, "foreground", 3) != 0) { fputs(usage, stderr); exit(0); } foreground = 1; server.setForeground(foreground); break; case 'F': server.setLogFile(optarg); break; case 'n': server.setNumLogs(atoi(optarg)); break; case 's': server.setLogSize(atoi(optarg)); break; case '?': fputs(usage, stderr); exit(0); } } // Background unless debugging // COMMENTED OUT. WILL BE STARTED IN BACKGROUND BY TOOLTALK /* if (!foreground) { if (_daemonize(foreground ? _DF_NOFORK|_DF_NOCHDIR|_DF_NOCLOSE : 0, -1, -1, -1) < 0) { perror("unable to become a daemon"); exit (errno); } } */ // Install a signal handler for common exits signal(SIGINT, done); signal(SIGTERM, done); // Run the server server.run(); exit(0); } void done(int sig, ...) { // XXX - Shut down trap if (sig == SIGALRM) { syslog(LOG_DEBUG, "Exiting: no-client timer expired."); } else { syslog (LOG_DEBUG, "main caught signal %d: exiting", sig); } closelog(); //XXXX should add a close event to the eventlog exit(0); }