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