[comp.protocols.iso.dev-environ] Log-files in ISODE 6.8

Bart.Kersten@TNOFEL.FEL.TNO.NL (Bart Kersten) (04/23/91)

Dear ISODE-devotees,

We have installed the interim version 6.8 of the ISODE package over SUNOs41.
Our 'isotailor'-file specifies the following directory configuration:

	binpath:	/home/assg7/isode/bin/
	sbinpath:	/home/assg7/isode/bin/
	etcpath:	/home/assg7/isode/etc/
	logpath:	/home/assg7/isode/tmp/

All goes well, accept one thing:
When user 'assg7', who has super-user authority, starts up the daemons
'tsapd', 'snmpd' and 'smux.unixd' manually, all the log-files are correctly put in the logpath-directory.

However, when the daemons become active after a system-boot by executing the 
'rc.local'-file, log-files are put in the root-directory. We hate that.

Please contribute in solving this problem.
-- 
+-----------------------------------------------------------------------------+
|   Bart Kersten							      |
|   TNO Physics and Electronic Laboratory				      |
|   The Netherlands							      |
|   +31 70 3264221							      |
|   bart.kersten@fel.tno.nl						      |
+-----------------------------------------------------------------------------+

j.onions@xtel.co.uk (Julian Onions) (04/23/91)

Couple of things to check...
when you start the daemons from rc.local, are all the appropriate
discs mounted - e.g. the disc with your isotailor file in?
Do you redirect the output of the commands in rc.local?

Julian.

Eric.Rosenquist@DRE-SW1.SOFKIN.CA (04/23/91)

> However, when the daemons become active after a system-boot by executing the 
> 'rc.local'-file, log-files are put in the root-directory. We hate that.

Make sure you remember to redirect the stderr of the tsapd when you
start it in rc.local.  If not, it calls the ll_dbinit() routine to
initilize the logging package in `debug' mode, which causes the log
file to go in the current directory.

Eric
-- 
Eric Rosenquist - Software Kinetics Limited
65 Iber Road, Stittsville Ontario Canada, K2S 1E7
Tel: (613) 831-0888, Fax: (613) 831-1836
email: Eric.Rosenquist@crc.sofkin.ca
       Eric.Rosenquist@crc.skl.dnd.ca (old)

alan@CURTA.CC.COLUMBIA.EDU (Alan Crosswell) (04/23/91)

The way the ISODE servers work is that if their stdout is
non-existent, they assume that they are running as background daemons
and write to their configured log file.  If they have a stdout, they
assume they are running from the command line (e.g. because they are
being debugged) and they write to stdout/stderr and to log files in
the connected directory.

Some genius at Sun decided that they should change the way /etc/rc*
scripts work.  Back in the good old days(:-) it used to be that they
had no controlling terminal and programs that wanted one had to
explicitly redirect output (e.g. to /dev/console).  So, you would see
things like:

	if [-f /etc/foo ]; then
		echo -n 'starting foo server: '		>/dev/console
		/etc/foo				>/dev/console
	fi

	if [ -f /usr/local/etc/tsapd ]; then
		echo -n 'starting ISODE: '		>/dev/console
		/usr/local/etc/tsapd &
		echo -n 'tsapd '			>/dev/console
	fi

This causes stdout to go to /dev/console and also makes /dev/console
the controlling tty for the /etc/foo process.  And the tsapd runs
without a controlling tty, figures this out, and writes to logdir.

Somewhere along the line, this behavior changed such that all the
/etc/rc scripts run with a controlling tty of /dev/console and
stdin/out/err redirected there.  So now you see scripts like this:

	if [-f /etc/foo ]; then
		echo -n 'starting foo server: '
		/etc/foo
	fi

	if [ -f /usr/local/etc/tsapd ]; then
		echo -n 'starting ISODE: '
		/usr/local/etc/tsapd >/dev/null 2>&1 &
		echo -n 'tsapd '
	fi

In other words, to get the "correct" behavior in an /etc/rc script you
have to explicitly redirect stdout/stderr to /dev/null.

We reported this to Sun as a bug and were rebuffed.  It was certainly
an undocumented change which broke many of our programs that relied on
not having a controlling tty.

/a

Dirk.Husemann@informatik.uni-erlangen.de (Dirk Husemann) (04/27/91)

> 
> Dear ISODE-devotees,
> 
...
> However, when the daemons become active after a system-boot by executing the 
> 'rc.local'-file, log-files are put in the root-directory. We hate that.
So do I!
> 
> Please contribute in solving this problem.

Dirk Husemann						 Tel.: +49 9131 85 8029
University of Erlangen-Nuremberg			 FAX: +49 9131 39388
Department of Computer Science 	       
Martenstrasse 1 	   
D-W 8520 Erlangen, Germany

Dirk.Husemann@informatik.uni-erlangen.de
/C=de/A=dbp/P=uni-erlangen/OU=informatik/S=husemann/G=dirk/