Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!zombie.ncsc.mil!news.mathworks.com!gatech!howland.reston.ans.net!Germany.EU.net!zib-berlin.de!news.tu-chemnitz.de!irz401!uriah.heep!not-for-mail
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: Auto-killing slattach?
Date: 24 Jun 1995 12:34:26 +0200
Organization: Private FreeBSD site, Dresden.
Lines: 68
Message-ID: <3sgpni$6nm@uriah.heep.sax.de>
References: <kientzleDAJ8zB.FHo@netcom.com> <3sfa4t$n32@solaris.cc.vt.edu> <3sfbvf$q3i@agate.berkeley.edu> <3sfdu1$os4@Mars.mcs.com>
NNTP-Posting-Host: uriah.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Christopher Hilton <chilton@MCS.COM> wrote:
> The
>latest one stores the pid of the slattach process for each invocation
>in /var/run. If you are trying to kill the slattach program this
>comes in handy as you can do something like:
>
> kill `cat /var/run/slattach.cua00`
So somebody is actually using this feature now. :-) I've stumpled
across this when hacking my Perl dialing/shutdown scripts for my own
SLIP link. I thought it has been rather a serious inconsistency that
the slattach didn't drop PID files like many other daemons do,
especially given the fact that it's forking itself half a dozen times,
so there' no logic at all on how to obtain the PID otherwise. (And
yes, i do hate those ``killall'' approaches.)
[slattach not providing a facility to shut down the interface on exit]
>This is a similar mechanism to the -u unit command. The only reason
>that I hadn't said something before is because I doubted that many
>people are using more than one slip unit at a time.
Hmm, additional arguments will confuse those (like me) who used to
perform some script-tweaking of their own. But how about running the
`-u' command (config_cmd) again on exit, this time with a new slunit
number of -1? (It's already run with an `old' unit number of -1 at
startup.)
The text is suggesting that it's already doing something like this,
but apparently it got lost on the way:
/* Run config_cmd if specified before exiting. */
^^^^^^^^^^
void exit_handler(int ret)
{
if(exiting) return;
exiting = 1;
/*
* First close the slip line in case exit_cmd wants it (like to hang
* up a modem or something).
*/
if (fd != -1)
close(fd);
/* Remove the PID file */
(void)unlink(pidfilename);
/* invoke a shell for exit_cmd. */
if (exit_cmd) {
^^^^^^^^
syslog(LOG_NOTICE,"exiting after running %s", exit_cmd);
system(exit_cmd);
}
exit(ret);
}
Since you happen to have more than one link and can actually also test
it, please come up with a patch. Send it by send-pr, or send it
directly to me, and i'm happy to commit it to the source.
--
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/
Never trust an operating system you don't have sources for. ;-)