• SysVinit vs BSDinit

    From Marco Moock@mm@dorfdsl.de to alt.os.linux.slackware on Thu Jul 9 15:56:43 2026
    From Newsgroup: alt.os.linux.slackware

    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    IIRC FreeBSD does not have run levels.
    --
    Gru|f
    Marco

    Junk-Mail bitte an trashcan@stinkedores.dorfdsl.de

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lew Pitcher@lew.pitcher@digitalfreehold.ca to alt.os.linux.slackware on Thu Jul 9 14:25:29 2026
    From Newsgroup: alt.os.linux.slackware

    On Thu, 09 Jul 2026 15:56:43 +0200, Marco Moock wrote:

    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    IIRC FreeBSD does not have run levels.

    IIRC, Pat V. "grew up" on BSD, and makes his init scripts "BSD-like".
    However, as some packages supply their own SysV initscripts (and the
    Linux Standards Base still dictates the requirement to support SysV initscripts), Slackware allows for their use.

    The primary difference between the SysV and BSD initscript philosophy seems
    to be how the scripts are named and invoked. SysV has different names for the scripts to start and stop a service, while BSD uses an argument to the script to indicate the same.

    As for "run levels", "real" BSD didn't support the range of runlevels that SysVinit does, and apparently neither do the Free/Open/NetBSDs. (BSDs apparently
    support a "single user" mode and a "multi-user" mode, something like the SysVinit
    run level 1 ("single user") and run level 3 ("multi user").

    Seemingly, the use of runlevels, inittab entries, and run levels have become "long forgotten lore". I personally find the combination more flexible than the equivalent SystemD configurations that pervade the Linux space these days. But, then again, I'm an old fart. :-)
    --
    Lew Pitcher
    "In Skills We Trust"
    Not LLM output - I'm just like this.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lew Pitcher@lew.pitcher@digitalfreehold.ca to alt.os.linux.slackware on Thu Jul 9 14:27:45 2026
    From Newsgroup: alt.os.linux.slackware

    Oops. I should proofread these posts. Sorry

    On Thu, 09 Jul 2026 14:25:29 +0000, Lew Pitcher wrote:

    On Thu, 09 Jul 2026 15:56:43 +0200, Marco Moock wrote:

    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not
    located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    IIRC FreeBSD does not have run levels.

    IIRC, Pat V. "grew up" on BSD, and makes his init scripts "BSD-like". However, as some packages supply their own SysV initscripts (and the
    Linux Standards Base still dictates the requirement to support SysV initscripts), Slackware allows for their use.

    The primary difference between the SysV and BSD initscript philosophy seems to be how the scripts are named and invoked. SysV has different names for the scripts to start and stop a service, while BSD uses an argument to the script to indicate the same.

    As for "run levels", "real" BSD didn't support the range of runlevels that SysVinit does, and apparently neither do the Free/Open/NetBSDs. (BSDs apparently
    support a "single user" mode and a "multi-user" mode, something like the SysVinit
    run level 1 ("single user") and run level 3 ("multi user").

    Seemingly, the use of runlevels, inittab entries, and run levels have become

    I meant to say...
    Seemingly, the use of runlevels, inittab entries, and init scripts have become

    "long forgotten lore". I personally find the combination more flexible than the
    equivalent SystemD configurations that pervade the Linux space these days. But,
    then again, I'm an old fart. :-)
    --
    Lew Pitcher
    "In Skills We Trust"
    Not LLM output - I'm just like this.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Rich@rich@example.invalid to alt.os.linux.slackware on Thu Jul 9 15:16:25 2026
    From Newsgroup: alt.os.linux.slackware

    Marco Moock <mm@dorfdsl.de> wrote:
    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    IIRC FreeBSD does not have run levels.

    In addition to what Lew posted, one other big difference is that
    traditional SYSV init script styling has the scripts linked as an ugly
    forest of symlinks beneath /etc/rc.d/rc?.d/ directories pointing to the
    actual scripts, with the names of the symlinks defining the order in
    which each is executed. Each "script" in effect being little more than
    a small "function" in a larger program.

    BSD style init has the scripts as actual scripts (i.e., multiple
    functions inside each script file), which execute each other as they go
    along as needed, but without the symlink forest indirection to have to
    parse through to figure out what is, or is not, executed.

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lew Pitcher@lew.pitcher@digitalfreehold.ca to alt.os.linux.slackware on Thu Jul 9 15:46:39 2026
    From Newsgroup: alt.os.linux.slackware

    On Thu, 09 Jul 2026 15:16:25 +0000, Rich wrote:

    Marco Moock <mm@dorfdsl.de> wrote:
    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not
    located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    IIRC FreeBSD does not have run levels.

    In addition to what Lew posted, one other big difference is that
    traditional SYSV init script styling has the scripts linked as an ugly forest of symlinks beneath /etc/rc.d/rc?.d/ directories pointing to the actual scripts, with the names of the symlinks defining the order in
    which each is executed. Each "script" in effect being little more than
    a small "function" in a larger program.

    BSD style init has the scripts as actual scripts (i.e., multiple
    functions inside each script file), which execute each other as they go along as needed, but without the symlink forest indirection to have to
    parse through to figure out what is, or is not, executed.

    As you can tell, I've not had much experience with a true SysV init
    system. I had forgot about the symlink forest; my only real experience
    was on an IP04 linux-based PSTN&VoIP telephony device, which used the
    SysV style symlink forest quite extensively.
    --
    Lew Pitcher
    "In Skills We Trust"
    Not LLM output - I'm just like this.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to alt.os.linux.slackware on Fri Jul 10 07:01:44 2026
    From Newsgroup: alt.os.linux.slackware

    Am 09.07.26 um 17:46 schrieb Lew Pitcher:
    As you can tell, I've not had much experience with a true SysV init
    system. I had forgot about the symlink forest; my only real experience
    was on an IP04 linux-based PSTN&VoIP telephony device, which used the
    SysV style symlink forest quite extensively.

    I have access to IBM AIX, which is based on SysV. I will have a look at
    the init system.
    --
    Gru|f
    Marco

    Junk-Mail bitte an trashcan@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From jayjwa@jayjwa@atr2.ath.cx.invalid to alt.os.linux.slackware on Fri Jul 10 13:16:24 2026
    From Newsgroup: alt.os.linux.slackware

    Rich <rich@example.invalid> writes:

    Some people say Slackware provides SysVinit, some BSD-like init.
    Some things put stuff in Slackware's /etc/init.d, but this is unusual. rY#jayjwarYO/etcrY#rLore+ ls init.d/
    functions* README.functions xrdp*

    I don't actually use that script anyway.

    In addition to what Lew posted, one other big difference is that
    traditional SYSV init script styling has the scripts linked as an ugly forest of symlinks beneath /etc/rc.d/rc?.d/ directories pointing to the actual scripts, with the names of the symlinks defining the order in
    which each is executed. Each "script" in effect being little more than
    a small "function" in a larger program.
    In Solaris 9, /etc/rc.d is obsolete, according to /etc/init.d/README:

    NOTE:

    /sbin/rc2 has references to the obsolescent 'rc.d' directory. These
    references are for compatibility with old INSTALL scripts. New INSTALL
    scripts should use the init.d directory for related executables. The
    same is true for the shutdown.d directory.

    BSD style init has the scripts as actual scripts (i.e., multiple
    functions inside each script file), which execute each other as they go along as needed, but without the symlink forest indirection to have to
    parse through to figure out what is, or is not, executed.
    This is what SysVinit looks like on Solaris 9:
    [13:08 jayjwa@kulve:/etc/init.d >] ls ../rc3.d [pts/5 hst:34]
    README S15nfs.server* S50apache* S77dmi* S84appserv* S13kdc.master* S16boot.server* S52imq* S80mipagent* S89sshd*
    S14kdc* S34dhcp* S76snmpdx* S81volmgt* S90samba*

    There's no /etc/rc.d.

    [13:08 jayjwa@kulve:/etc/init.d >] ls -ltr | tail -20 [pts/5 hst:36]
    -rwxr-xr-x 2 root other 1.5k Apr 15 2002 autoinstall*
    -rwxr--r-- 6 root sys 322 May 7 2003 appserv*
    -rwxr--r-- 5 root sys 404 May 14 2003 rcapd*
    -rwxr--r-- 2 root sys 2.6k Dec 16 2003 sunatm*
    -rwxr--r-- 6 root sys 5.7k Apr 5 2004 imq*
    -rwxr-xr-x 5 root bin 1.5k Apr 26 2004 ipp*
    -rwxr--r-- 4 root sys 1.1k May 10 2004 lu*
    -rwxr--r-- 6 root sys 324 Dec 6 2004 samba*
    -rwxr--r-- 9 root sys 391 Aug 18 2005 volmgt*
    -rwxr--r-- 6 root sys 1.5k May 30 2006 apache*
    -rwxr--r-- 5 root sys 1.0k Jul 19 2006 slpd*
    -rwxr--r-- 5 root sys 7.0k Jul 19 2006 inetsvc*
    -rwxr--r-- 5 root sys 12k Jul 19 2006 inetinit*
    -rwxr--r-- 2 root sys 1.1k Jul 19 2006 cachefs.daemon* -rwxr--r-- 2 root sys 20k Jul 19 2006 network*
    -rwxr--r-- 6 root sys 1.4k Jul 19 2006 sshd*
    -rwxr--r-- 5 root sys 2.8k Jul 19 2006 svm.sync*
    -rwxr--r-- 5 root sys 2.7k Aug 5 2006 init.wbem*
    -rwxr-xr-x 1 root root 5.5k Jun 26 2023 webstart*
    -rwxr--r-- 2 root sys 963 Sep 9 2023 perf*

    Looks like Slackware's is patterned off of BSD but with some
    modifications. There's a rc.sysvinit but I've never seen it used in all
    my years of Slackware.
    --
    PGP Key ID: 781C A3E2 C6ED 70A6 B356 7AF5 B510 542E D460 5CAE
    "The Internet should always be the Wild West!"
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Rich@rich@example.invalid to alt.os.linux.slackware on Sat Jul 11 01:22:38 2026
    From Newsgroup: alt.os.linux.slackware

    jayjwa <jayjwa@atr2.ath.cx.invalid> wrote:
    Looks like Slackware's is patterned off of BSD but with some
    modifications. There's a rc.sysvinit but I've never seen it used in
    all my years of Slackware.

    My understanding (from somewhere) is that is present to make installing packages that assume a sysvinit symlink forest work on Slackware
    without fiddling.

    It's not used by anything aimed at Slackware, it would be possibly used
    by someone installing an RPM from redhat by doing a rpm2tgz then
    installing the tgz unmodified.

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to alt.os.linux.slackware on Sat Jul 11 07:26:45 2026
    From Newsgroup: alt.os.linux.slackware

    Am 11.07.26 um 03:22 schrieb Rich:
    it would be possibly used
    by someone installing an RPM from redhat by doing a rpm2tgz then
    installing the tgz unmodified.

    Maybe in the past, as RedHat used SysVinit. But in 6, they switched to
    Upstart and in 7 to systemd. RedHat and Fedora removed all their startup scripts to systemd - unlike Debian, that still ships some packages
    without systemd units, but initscripts that are used by the
    systemd-generator.
    --
    Gru|f
    Marco

    Junk-Mail bitte an trashcan@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From John McCue@jmclnx@gmail.com.invalid to alt.os.linux.slackware on Sat Jul 11 15:16:26 2026
    From Newsgroup: alt.os.linux.slackware

    Marco Moock <mm@dorfdsl.de> wrote:
    Hello!

    The package sysvinit-scripts provides the init scripts, but they are not located in /etc/init.d, but in /etc/rc.d, like FreeBSD does.

    Some people say Slackware provides SysVinit, some BSD-like init.

    What are the differences here?

    Others replied with better info then I would have..

    IIRC FreeBSD does not have run levels.

    Correct and the same for other BSDs

    IIRC, at one time BSD had just 1 large rc. Then the NetBSD
    people came up with the current BSD init using rc.conf. The
    other BSDs adapted and in some cases updated it for their own
    use.

    I admit my memory could be "suspect", but I remember seeing a
    NetBSD pdf describing the move to the current rc setup.
    I never saved it :(
    --
    [t]csh(1) - "An elegant shell, for a more... civilized age."
    - Paraphrasing Star Wars
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mike Small@smallm@panix.com to alt.os.linux.slackware on Thu Jul 23 13:27:16 2026
    From Newsgroup: alt.os.linux.slackware

    John McCue <jmclnx@gmail.com.invalid> writes:
    ...
    IIRC, at one time BSD had just 1 large rc. Then the NetBSD
    people came up with the current BSD init using rc.conf. The
    other BSDs adapted and in some cases updated it for their own
    use.

    I admit my memory could be "suspect", but I remember seeing a
    NetBSD pdf describing the move to the current rc setup.
    I never saved it :(

    This is probably the document you mean: http://www.mewburn.net/luke/papers/rc.d.pdf

    It's linked from the Additional Reading section of chapter 7 of NetBSD's handbook, the chapter on rc.d:

    https://netbsd.org/docs/guide/en/chap-rc.html

    Regards,
    Mike Sm.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From John McCue@jmclnx@gmail.com.invalid to alt.os.linux.slackware on Thu Jul 23 23:36:42 2026
    From Newsgroup: alt.os.linux.slackware

    Mike Small <smallm@panix.com> wrote:
    John McCue <jmclnx@gmail.com.invalid> writes:
    ...
    <snip>
    I never saved it :(

    This is probably the document you mean: http://www.mewburn.net/luke/papers/rc.d.pdf

    It's linked from the Additional Reading section of chapter 7 of NetBSD's handbook, the chapter on rc.d:

    https://netbsd.org/docs/guide/en/chap-rc.html

    Yes, that is the document. This time I saved the link :)

    Regards,
    Mike Sm.
    --
    [t]csh(1) - "An elegant shell, for a more... civilized age."
    - Paraphrasing Star Wars
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to alt.os.linux.slackware on Fri Aug 7 07:16:45 2026
    From Newsgroup: alt.os.linux.slackware

    Am 07.08.26 um 00:45 schrieb steve g:
    The basic idea these days is systemd. Slackware doesn't use systemd. it
    uses run levels. Slackware is easier to use for me.

    systemd has targets that behave very similar.

    Although, systemd is much more complex regarding what it does, where it
    is being configured and which unit triggers another one.
    --
    Gru|f
    Marco

    Junk-Mail bitte an trashcan@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Henrik Carlqvist@Henrik.Carlqvist@deadspam.com to alt.os.linux.slackware on Mon Aug 10 05:43:25 2026
    From Newsgroup: alt.os.linux.slackware

    On Fri, 07 Aug 2026 07:16:45 +0200, Marco Moock wrote:

    Am 07.08.26 um 00:45 schrieb steve g:
    The basic idea these days is systemd. Slackware doesn't use systemd. it
    uses run levels. Slackware is easier to use for me.

    systemd has targets that behave very similar.

    Although, systemd is much more complex regarding what it does, where it
    is being configured and which unit triggers another one.

    IMHO, the biggest disadvantage of systemd is not that it is more complex.
    The biggest disadvantage of systemd is that it deviates from the number
    one of the Unix philosopies: "Make each program do one thing well. To do
    a new job, build afresh rather than complicate old programs by adding new "features"."

    Systemd is not only an init system. It does not only replace /sbin/init,
    it also replaces /usr/sbin/crond, /usr/sbin/syslogd, /sbin/udevd and /usr/ sbin/inetd. Systemd is not a bad choice because it is complex, it is
    complex because it failed to follow the Unix philosopies. I prefer
    Slackware to be BSD-Unix-like, that will also make Slackware less complex
    and easier to use.

    Today there are many people who grew up with an operating system which integrated everything in a GUI instead of putting a GUI on top of an
    operating system. They think that good tools should be complex like
    complete office suites and integrated development environments. Some of
    those peoaple are now developers. Some of those developers bring their
    ideas to Linux distributions.

    regards Henrik
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Rich@rich@example.invalid to alt.os.linux.slackware on Mon Aug 10 22:14:37 2026
    From Newsgroup: alt.os.linux.slackware

    Henrik Carlqvist <Henrik.Carlqvist@deadspam.com> wrote:
    On Fri, 07 Aug 2026 07:16:45 +0200, Marco Moock wrote:

    Am 07.08.26 um 00:45 schrieb steve g:
    The basic idea these days is systemd. Slackware doesn't use systemd. it
    uses run levels. Slackware is easier to use for me.

    systemd has targets that behave very similar.

    Although, systemd is much more complex regarding what it does, where it
    is being configured and which unit triggers another one.

    IMHO, the biggest disadvantage of systemd is not that it is more complex. The biggest disadvantage of systemd is that it deviates from the number
    one of the Unix philosopies: "Make each program do one thing well. To do
    a new job, build afresh rather than complicate old programs by adding new "features"."

    Systemd is not only an init system. It does not only replace /sbin/init,
    it also replaces /usr/sbin/crond, /usr/sbin/syslogd, /sbin/udevd and /usr/ sbin/inetd. Systemd is not a bad choice because it is complex, it is
    complex because it failed to follow the Unix philosopies.

    Systemd was concieved and created by a developer who, as it turns out,
    was a closet micro-softie. He now actually works for Microsoft, so we eventually learned where his true allegiances lay. It is the "do it
    the windows way" init system for Linux, because Lennart Poettering
    apparently was always a microsoft plant all along.

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mike Small@smallm@panix.com to alt.os.linux.slackware on Sat Aug 15 00:15:34 2026
    From Newsgroup: alt.os.linux.slackware

    Henrik Carlqvist <Henrik.Carlqvist@deadspam.com> writes:

    On Fri, 07 Aug 2026 07:16:45 +0200, Marco Moock wrote:

    Am 07.08.26 um 00:45 schrieb steve g:
    The basic idea these days is systemd. Slackware doesn't use systemd. it
    uses run levels. Slackware is easier to use for me.

    systemd has targets that behave very similar.

    Although, systemd is much more complex regarding what it does, where it
    is being configured and which unit triggers another one.

    IMHO, the biggest disadvantage of systemd is not that it is more complex. The biggest disadvantage of systemd is that it deviates from the number
    one of the Unix philosopies: "Make each program do one thing well. To do
    a new job, build afresh rather than complicate old programs by adding new "features"."

    That is certainly part of it. But for me -- my personal preference I
    mean -- as much of an annoyance is the replacement of what was "just a
    matter of coding" -- in terms of your system start being decided by
    whatever is in your init scripts -- with configuration files. So they
    have this rigid set of files in "ini" format instead of a true
    programming language. Maybe bourne shell (plus extensions) isn't the
    finest programming language out there, but any programming language is
    better than a configuration language designed for non-programming
    sysadmins.

    Falling out of that decision they get this endless proliferation of
    keywords and concepts (wants, upholds, requires, requisite, bindsto, wants-with-chocolate-sprinkles-on-top, passive-aggressively-suggests,
    etc. etc.).

    As a consequence of this view I don't share the common opinion that systemd wouldn't be that bad if it had only confined itself to replacing init.

    I have a similar beef with udevd (and eudevd), its use of "udev rules"
    in place of a proper embedded programming language. Now, I don't
    dislike so called little languages, purpose drawn languages like expect
    or awk. But udev-rule format can't hold a candle to those. It's just an
    awkward configuration format and with a nasty feature of sharing some
    special characters with bourne shell in unintuitive and error prone
    ways.

    Regards,
    Mike Sm.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Henrik Carlqvist@Henrik.Carlqvist@deadspam.com to alt.os.linux.slackware on Sun Aug 16 11:06:08 2026
    From Newsgroup: alt.os.linux.slackware

    On Sat, 15 Aug 2026 00:15:34 -0400, Mike Small wrote:
    I have a similar beef with udevd (and eudevd), its use of "udev rules"
    in place of a proper embedded programming language

    Fortunately, it is easy to write an udev rule which calls a real script
    or program.

    One such example from my /etc/udev/rules.d/90-local.rules:

    -8<----------------------------------
    # Serial ports
    KERNEL=="ttyS[0-9]*", MODE="0666"
    KERNEL=="ttyUSB[0-9]*", MODE="0666"
    KERNEL=="ttyACM[0-9]*", MODE="0666", RUN+="/bin/stty -F %p -echo raw" -8<----------------------------------

    regards Henrik
    --- Synchronet 3.22a-Linux NewsLink 1.2