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