ya gotta love this board...just a simple thing like keeping a stupid ping alive got two terrific ideas from Kevin & Jean. I am so humbled... ----:----|----:----|----:----|----:----|----:----|----:----| - Craig White - PO Box 8634 - Scottsdale, Arizona - 85252 - e-mail address ................ - CraigWhite@AzApple.com - world wide web address ........ - http://www.AzApple.com - e-mail my pager address ....... - 6023779752@airtouch.net - cellular phone ................ - (602) 377-9752 - voice/facsimile ............... - (480) 945-8445 ----:----|----:----|----:----|----:----|----:----|----:----| > -----Original Message----- > From: plug-discuss-admin@lists.plug.phoenix.az.us > [mailto:plug-discuss-admin@lists.plug.phoenix.az.us]On Behalf Of Kevin > Buettner > Sent: Thursday, July 06, 2000 10:00 PM > To: plug-discuss@lists.plug.phoenix.az.us > Subject: Re: keeping an occasional ping alive > > > On Jul 6, 8:30pm, Craig White wrote: > > > I have a client that has a problem with their ISDN and we want > to keep the > > connection alive - so we would probably want to ping an internet address > > once every 30 seconds. > > > > I read man ping and found that I can ping address -i30 -q but I > want that > > process in the background so I get a shell prompt so I add an > ampersand to > > the line to make it... > > > > ping (address) -i30 -q & > > > > but it still doesn't return to the shell prompt unless I hit > return a second > > time - why? can anyone clue in the clueless? Is this a > reasonable way to do > > this? > > Are you certain that you're not seeing a shell prompt? > > E.g, when I try it, here's what I see: > > ocotillo:kev$ ping 192.168.2.1 -i30 -q & > [1] 3192 > ocotillo:kev$ PING 192.168.2.1 (192.168.2.1) from 192.168.2.7 > : 56(84) bytes of data. > > > Note that the prompt and the initial output from ping ended up on > the same line. You can avoid even the initial output by doing the > following: > > ocotillo:kev$ ping 192.168.2.1 -i30 -q >/dev/null & > [1] 3209 > ocotillo:kev$ > > The parent of the ping will be your shell process. It may be > desirable to "daemonize" the ping process so that your shell > can exit without killing the ping. You can do that as follows: > > ocotillo:kev$ ( ping 192.168.2.1 -i30 -q >/dev/null & ) & > [1] 3222 > ocotillo:kev$ > [1]+ Done ( ping 192.168.2.1 -i30 -q > >/dev/null & ) > > The ping hasn't really exited, only the subshell enclosed by parens has > exited. If you grep for ping, it's still alive and kicking: > > ocotillo:kev$ ps axlww | grep ping > 100 204 3223 1 4 0 1224 472 skb_re S pts/28 > 0:00 ping 192.168.2.1 -i30 -q > > Note that the ping's parent pid is 1 which is the init process. This is > normal for child processes who've lost their parent; init inherits them. > This is good because 1) it allows you to exit your shell without killing > the ping and 2) if the ping should exit for some reason, init will do > the wait() or waitpid() and prevent the process from becoming a zombie. > (Actually, the shell should do this for you too, but it possible to > come up with a pathological example in which a zombie is created.) > > Kevin > > _______________________________________________ > Plug-discuss mailing list - Plug-discuss@lists.PLUG.phoenix.az.us > http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss