Bug 1664 - going to runlevel 1 won't run any scripts in /etc/rc.d/rc1.d
Summary: going to runlevel 1 won't run any scripts in /etc/rc.d/rc1.d
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: initscripts
Version: 5.2
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Bill Nottingham
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 1999-03-22 07:28 UTC by Marc MERLIN
Modified: 2014-03-17 02:09 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 1999-04-13 15:47:17 UTC
Embargoed:


Attachments (Terms of Use)

Description Marc MERLIN 1999-03-22 07:28:28 UTC
You may think: but that's the whole point, we shouldn't run
any daemons in single user mode.

Yes, but:
- because you don't set the keytables in rc.sysinit (like
  you should because if fsck fails rc.sysinit spawns a shell
  and non US users then have to fix their system with the
  wrong keymap), booting linux with "linux single" won't
  load the keymap even after you add RL 1 to keytable's
  chkconfig line
- if people run a daemon like watchdog with the
kernel         softdog module and  with the kernel compiled
in
  NO_WAY_OUT mode, going to single user mode
  kills watchdog, and it doesn't get restarted, even if
  its chkconfig line says that it should run in RL 1.
  The end result is that the kernel does a hard reboot after
  1mn.

I agree that you don't support watchdog (I'm the RPM
maintainer), but I hope you'll agree that RH needs some way
to run some scripts from RL 1.

The way you can fix this is by modifying
/etc/rc.d/init.d/single to not do exec init -t1 S, and have
another script that does that, but with a S99 link in rc0.d,
not a S00 one.

I hope it's not too late for this to go in 6.0

Comment 1 Bill Nottingham 1999-03-22 16:10:59 UTC
- keytable can't necessarily be run after fsck fails, because
it requires /usr to be mounted somewhere.

As for the single-user mode, I'll look at it.

Comment 2 Marc MERLIN 1999-03-22 17:51:59 UTC
I am aware of the /usr not mounted issue and keytables, please see
the bottom of bug 1146 (sorry I should have referenced it here).
In a nutshell, I recommend to copy the selected keymap to
/etc/sysconfig so that you can activate it before /usr is mounted

Comment 3 Bill Nottingham 1999-04-06 16:20:59 UTC
The keytable thing has been fixed in initscripts-3.99-1
(and console-tools-*-6); as for running scripts in runlevel
1, it still won't work, as wherever you run init -t1 -S,
it will do a TERM/KILL of all process. We might look into
changing that later, but it's not feasible to do now.

Comment 4 Marc MERLIN 1999-04-13 08:43:59 UTC
I checked and init -t1 -S will _not_ kill processes that are already
running. This is why the single script does this explicitely (kill -15
and later kill -9).
You also sticked a called to kerneld in there because you had the same
exact need than me: sometimes you do need a couple of daemons running
in single user mode.

Furthermore starbucks contains a bug where it uses action to run the
kill -15 -1, and it kills all but the current process, which includes
the single script, so it never gets to finish.
Please have a look at my version of this script (Emailed and linked
to this bug). It removes the "action"s so that the script doesn't kill
itself, and it starts other scripts that are in /etc/rc.d/rc1.d

------- Email Received From  Marc Merlin <marc> 04/13/99 04:56 -------

Comment 5 Bill Nottingham 1999-04-13 15:47:59 UTC
fixed in initscripts-4.11.


Note You need to log in before you can comment on or make changes to this bug.