On 14/01/2026 18:21, Bruce Jerrick via Cygwin wrote:
On 1/13/26 22:09, matthew patton wrote:

or is it a case someone broke/removed the symlink from /etc/rc to /etc/rc.d/rc? Or more correctly /etc/rc -> /etc/init.d/rc.Removed, I believe, not broke. See below re executables in /etc .

/etc/rc dates back to SunOS v4 at least. Similarly /etc/init and /sbin/init.
Long before any SunOS or BSD.  It was probably in Version 6 Unix .
Way back then (as they say), /etc contained "system" executables, as well as config files. The executables were eventually moved to /sbin .  I don't remember if that happened in BSD or SunOS.  It was /sbin, then, not /usr/sbin, because they had to be available before /usr was mounted (SunOS commonly got a read-only /usr via NFS).

/etc/rc.d (and children like /etc/rc[0-6].d) is more of a "expression of state" directory.
Agreed, but only in regard to /etc/rc.d/rc[0-6].d .
(A better name for /etc/rc.d (or /etc/init.d) would be /etc/init, since a ".d" suffix usually implies optional contents.)
.d indicates a Directory variant of the single file designated without the .d . Forexample, /etc/crontab.d is a directory of additional crontab files beyond
the commonglobal entries in /etc/crontab.

Nothing in a sane /etc directory should represent state,as the directory
is supposed to be the core system-wide system config, not writableexcept
by admin action.  In particular, /etc should not be writable by automated
thingssuch as boot executables and daemons (that belongs in /run and
/var).  On a real system rather than a compatibility layer like Cygwin,
/etc will be part of the a small read-only root mount that gets remounted
r/w only during relevant sysadmin tasks such as installing and removing
packages.

/etc/default/ is supposed to be a directory of per package config overrides,
such aschoosing additional invocation options for daemons started by
scripts in /etc/init.d/ .

/etc/default/etc/inittab is clearly out of place.


The actual scripts are supposed to live in /etc/init.d/.
See my "ideal" fix below.
'rc' and rc.sysinit are special cases -- they're called via
/etc/inittab, and don't have to be added to the rc[0-6].d dirs.
rc.local is also a special case -- it's source'd rc.sysinit .

Your local /etc/inittab should be FULL of references to /etc/init.d/rc like so:
...
# System initialization
si::sysinit:/etc/init.d/rcS

# Runlevel scriptsI woul
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
Not so in /etc/defaults/etc/inittab -- those subdirs are all "rc.d", not init.d .  See my comments above re 'rc' being a special case.



Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to