[gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-20 Thread reader
darren kirby [EMAIL PROTECTED] writes:

 Apropos, does anyone know of any good documentation about the Gentoo
 boot process and initscripts? Looking through all of these, it is
 difficult to follow what is going on, and the initscript guide I
 linked to before is a bit terse.

My sentiments too.  I wasn't even able to see where all that guff got
loaded or sourced looking thru net.lo.  I'm not a programmer by no
means but have written dozens even hundreds, I suppose, of shell scripts
and perl scripts though I've had no training on either.

However I get lost write away trying to follow how it all happens.

Here is an example from /etc/init.d/gpm below.  It is not apparent
where any of those variables get filled with a value.  I see nothing
being sourced either.  Further, what scripting language uses:
  ebegin
  eend
I've never seen it in sh ksh bash. The three most common scripting
languages (I think). What is it?


  checkconfig() {
   if [ -z $MOUSEDEV ] || [ -z $MOUSE ] ; then
  eerror You need to setup MOUSEDEV and MOUSE in /etc/conf.d/gpm first
  return 1
   fi
  }

  start() {
   checkconfig || return 1

   local params=
   [ -n $RESPONSIVENESS ]  params=$params -r $RESPONSIVENESS
   [ -n $REPEAT_TYPE ] params=$params -R$REPEAT_TYPE
   [ -n $APPEND ]  params=$params $APPEND 

   ebegin Starting gpm
   start-stop-daemon --start --quiet --exec /usr/sbin/gpm \
  -- -m ${MOUSEDEV} -t ${MOUSE} ${params}
   eend ${?}

-- 
gentoo-user@gentoo.org mailing list



[gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-20 Thread reader
Richard Fish [EMAIL PROTECTED] writes:

 A few things:

 1. Run equery check baselayout.  If it reports anything wrong in
 /lib/rcscripts, re-merge it.

equery did show a herd of wrong mtimes.  Which I'm guessing is
probably normal but it also shows MAKEDEV missing.  So I re-emerged
it.  Following re-emerge, equery now shows:

  root # equery  check baselayout 21|tee file2
  !!! /etc/rc.conf has incorrect md5sum
  !!! /etc/gentoo-release has wrong mtime (is 1135082266, should be
  1135082250)
  !!! /etc/conf.d/hostname has incorrect md5sum
  !!! /etc/modules.autoload.d/kernel-2.6 has incorrect md5sum
  !!! /etc/conf.d/clock has incorrect md5sum
  !!! /etc/conf.d/domainname has incorrect md5sum
  sys-apps/baselayout-1.12.0_pre11-r3:
   * 153 out of 159 files good

However, it didn't help the init script problem a bit.  I still see
the long list of stuff and a failure trying to start stuff with:
  /etc/init.d/NAME start


 2. Make sure that net.eth1 is a symlink to net.lo, _not_ a copy of an
 old script.

Bingo...!  It was not a symlink and was massively different.  Checking
backups from previous running system (before recent full reinstall) I
see net.eth0 and net.eth1 both symlinked to net.lo.  So renamed the
current net.eth1 and symlinked a net.eth1 to net.lo.

Starting services now works as expected.

Thank you Mr. Fish, I'd probably never have figured this out from
looking at the init process or the scripts.

-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-20 Thread Richard Fish
On 12/20/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 Here is an example from /etc/init.d/gpm below.  It is not apparent
 where any of those variables get filled with a value.  I see nothing
 being sourced either.  Further, what scripting language uses:
   ebegin
   eend

A major feature of every language worth knowing is the ability to
write functions.  ebegin and eend are exactly that, functions (or
procedures if you like) written in bash.  In the case of ebegin/eend,
these are defined in /etc/init.d/functions.sh.

All of the init scripts are executed by /sbin/runscript (see the first
line of gpm).  Now, this is where you would need to look at the source
for baselayout, since /sbin/runscript is a binary executable, but the
only thing that you really need to know is that /sbin/runscript runs
/sbin/runscript.sh, which is just a bash script.  It is this script
which sources functions.sh and takes care of starting (via
svc_start()) or stopping (via svc_stop()) the init script.

I'm not sure what else /sbin/runscript does, as I haven't looked at
the source for that.

-Richard

-- 
gentoo-user@gentoo.org mailing list



[gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-19 Thread reader
darren kirby [EMAIL PROTECTED] writes:


 As best I can tell, what is happening here is that the net.lo script
 checks all the modules in /lib/rcscripts/net.modules.d. These
 scripts are all the different ways you can get a net connection, and
 the one used in any particular instance is decided by
 /etc/conf.d/net (again...as best as I can tell). In your case, it
 would seem the net.lo script is trying _all_ of them.

 So: are you absolutely sure you net conf file is written properly?

root # egrep -v '^(#|$)' /etc/conf.d/net
config_eth1=( 192.168.0.4 netmask 255.255.255.0 brd 192.168.0.255 )
routes_eth1=( default gw 192.168.0.20 )

Those are the correct parameters, and the ones that have worked for
mnths although the format changed a few updates back.  So I think
those settings are not the problem

 It is preventing most services from starting by way of the normal
 channels although they can be started without problems by hand and
 using the flags found in /etc/conf.d.

 Can you elaborate here? Do you mean that if you try:

 /etc/init.d/ntpd start

 it fails but if you use:

 /etc/init.d/net.eth1 start
 /etc/init.d/ntpd start

 it works?

No

 It is preventing most services from starting
 by way of the normal channels

`It' being the cause of the blob of output I posted.

`Normal channels' being the init scripts like happens on bootup or when
root calls /etc/init.d/NAME start/stop/status

Those methods fail after invoking the blob of ouput.

  although they can be started without problems by hand and using the
 flags found in /etc/conf.d.

`by hand' being:

If root looks up the appropriate flags found in /etc/conf.d/NAME, and
then starts NAME with:

# NAME $AppropriateFlags

It works like:
  # ntpd -u ntp:ntp 
ntpd starts and runs normally

  # sendmail -bd -q30m -L sm-mta
  # sendmail -Ac -q30m -L sm-cm
Sendmail starts and runs fine

No crazy output.

 Do you have a net connection when you try this? What is the status
 of eth0? I am wondering why it tries to start eth1 here instead of
 eth0...

The ones listed above yes, but only because I ifconfiged one up.  The
normal bootup call to init scripts failed.

 If eth0 is already up, 

eth0 isn't a player in my working network for now although I do use it
occasionally.  I have 2 nics, only one in use.  It happens to be seen
as eth1 so that is what I use in /etc/conf.d/net

   and a net connection is present then ntpd should be 
 satisfied, and not try to run another net.* script.

I'm not sure what you are talking about here.  As I stated, the bootup
init calls failed.  I've shown ntpd output as a matter of example but
only after having built the network by hand with ifconfig and route.
Not by `/etc/init.d/NAME start'.  (Again, that fails) 

-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-19 Thread darren kirby
quoth the [EMAIL PROTECTED]:

 root # egrep -v '^(#|$)' /etc/conf.d/net
 config_eth1=( 192.168.0.4 netmask 255.255.255.0 brd 192.168.0.255 )
 routes_eth1=( default gw 192.168.0.20 )

 Those are the correct parameters, and the ones that have worked for
 mnths although the format changed a few updates back.  So I think
 those settings are not the problem

Fair enough...

  It is preventing most services from starting by way of the normal
  channels although they can be started without problems by hand and
  using the flags found in /etc/conf.d.
 
  Can you elaborate here? Do you mean that if you try:
 
  /etc/init.d/ntpd start
 
  it fails but if you use:
 
  /etc/init.d/net.eth1 start
  /etc/init.d/ntpd start
 
  it works?

 No

  It is preventing most services from starting
  by way of the normal channels

 `It' being the cause of the blob of output I posted.

 `Normal channels' being the init scripts like happens on bootup or when
 root calls /etc/init.d/NAME start/stop/status

 Those methods fail after invoking the blob of ouput.

   although they can be started without problems by hand and using the
  flags found in /etc/conf.d.

 `by hand' being:

 If root looks up the appropriate flags found in /etc/conf.d/NAME, and
 then starts NAME with:

 # NAME $AppropriateFlags

 It works like:
   # ntpd -u ntp:ntp 
 ntpd starts and runs normally

   # sendmail -bd -q30m -L sm-mta
   # sendmail -Ac -q30m -L sm-cm
 Sendmail starts and runs fine

 No crazy output.

Ok, are _all_ your init scripts failing here, or just ones that depend on 
network? Obviously, if you are resorting to starting your network 'by hand' 
then gentoo is not going to know internally that the network is up and 
running, and hence try to start networking for those services that depend on 
it...

  Do you have a net connection when you try this? What is the status
  of eth0? I am wondering why it tries to start eth1 here instead of
  eth0...

 The ones listed above yes, but only because I ifconfiged one up.  The
 normal bootup call to init scripts failed.

  If eth0 is already up,

 eth0 isn't a player in my working network for now although I do use it
 occasionally.  I have 2 nics, only one in use.  It happens to be seen
 as eth1 so that is what I use in /etc/conf.d/net

and a net connection is present then ntpd should be
  satisfied, and not try to run another net.* script.


 I'm not sure what you are talking about here.

Well, in your OP you can see that the ntpd init script is trying to start up 
your network (net.eth1) because ntpd depends on it to run. It cannot know 
(well, it can, but is not set up that way...) that your network is already 
running, because you started it outside of the normal channels (your term).

  As I stated, the bootup
 init calls failed.  I've shown ntpd output as a matter of example but
 only after having built the network by hand with ifconfig and route.
 Not by `/etc/init.d/NAME start'.  (Again, that fails)

I do not know what to tell you at this point other than it seems your init 
scripts, or perhaps /sbin/runscript is totally borked. If you are a hands on 
sort of guy, you may want to see the init script guide:

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2chap=4

the second last section writing initscripts goes intop details of how they 
run, perhaps it can help you to walk through your scripts and figure out 
where the problem lies. If not, you might need to file a bug report, or talk 
to a gentoo dev...

-d
-- 
darren kirby :: Part of the problem since 1976 :: http://badcomputer.org
...the number of UNIX installations has grown to 10, with more expected...
- Dennis Ritchie and Ken Thompson, June 1972


pgp1QWGbRnp73.pgp
Description: PGP signature


Re: [gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-19 Thread Richard Fish
On 12/19/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 
  As best I can tell, what is happening here is that the net.lo script
  checks all the modules in /lib/rcscripts/net.modules.d. These
  scripts are all the different ways you can get a net connection, and
  the one used in any particular instance is decided by
  /etc/conf.d/net (again...as best as I can tell). In your case, it
  would seem the net.lo script is trying _all_ of them.
 
  So: are you absolutely sure you net conf file is written properly?

 root # egrep -v '^(#|$)' /etc/conf.d/net
 config_eth1=( 192.168.0.4 netmask 255.255.255.0 brd 192.168.0.255 )
 routes_eth1=( default gw 192.168.0.20 )

A few things:

1. Run equery check baselayout.  If it reports anything wrong in
/lib/rcscripts, re-merge it.

2. Make sure that net.eth1 is a symlink to net.lo, _not_ a copy of an
old script.

3. You can set RC_NET_STRICT_CHECKING=lo in /etc/conf.d/rc to have the
net dependancy satisified by net.lo, which will stop all other network
services from trying to start net.eth1.

-Richard

-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] Re: /etc/init.d/net.lo lots of output ..ack

2005-12-19 Thread darren kirby
quoth the Richard Fish:
 A few things:

 1. Run equery check baselayout.  If it reports anything wrong in
 /lib/rcscripts, re-merge it.

 2. Make sure that net.eth1 is a symlink to net.lo, _not_ a copy of an
 old script.

 3. You can set RC_NET_STRICT_CHECKING=lo in /etc/conf.d/rc to have the
 net dependancy satisified by net.lo, which will stop all other network
 services from trying to start net.eth1.

 -Richard

Good tips Richard, thanks

Apropos, does anyone know of any good documentation about the Gentoo boot 
process and initscripts? Looking through all of these, it is difficult to 
follow what is going on, and the initscript guide I linked to before is a bit 
terse.

-d
-- 
darren kirby :: Part of the problem since 1976 :: http://badcomputer.org
...the number of UNIX installations has grown to 10, with more expected...
- Dennis Ritchie and Ken Thompson, June 1972


pgpIrUgIxzvHB.pgp
Description: PGP signature