Annotation of 40BSD/cmd/berknet/netstart.c, revision 1.1.1.1

1.1       root        1: # include "defs.h"
                      2: /*
                      3:  * this is a simple program to start up the net daemon,
                      4:  * and when it fails, restart it
                      5:  * 
                      6:  */
                      7: static int daemon = 32767;             /* a nice safe process number */
                      8: main(argc,argv)
                      9:   char **argv; {
                     10:        int r,killit(),pid;
                     11:        while((pid = fork()) == -1)sleep(2);
                     12:        if(pid != 0)exit(EX_OK);
                     13:        submit(getpid());
                     14:        signal(SIGQUIT,SIG_IGN);
                     15:        signal(SIGHUP,SIG_IGN);
                     16:        signal(SIGINT,SIG_IGN);
                     17:        signal(SIGTERM,killit);
                     18:        /* will set remote */
                     19:        parseargs(argc,argv);
                     20:        addtolog(remote,"Netstart started, process id #%d\n",getpid());
                     21:        for(;;){
                     22:                while((daemon=fork()) == -1)sleep(2);
                     23:                if(daemon == 0){
                     24:                        argv[0] = "netdaemon";
                     25:                        argv[argc] = 0;
                     26:                        execv(NETDAEMON,argv);
                     27:                        exit(EX_UNAVAILABLE);
                     28:                        }
                     29:                wait(&r);
                     30:                addtolog(remote,"Net daemon exit code %d, low byte 0%o\n",
                     31:                        (r>>8), (r&0377));
                     32:                sleep(100);             /* avoid looping too fast */
                     33:                }
                     34:        }
                     35: killit(){
                     36:        kill(daemon,SIGTERM);           /* send terminate */
                     37:        sleep(2);                       /* wait till cleanup */
                     38:        kill(daemon,SIGKILL);           /* kill in case too */
                     39:        exit(EX_OK);
                     40:        }
                     41: /* add to allow netstart.c to load */
                     42: initseqno(){};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.