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