Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Have you looked at OpenBSD?

Here's the /etc/rc.d/sshd:

  #!/bin/ksh
  #
  # $OpenBSD: sshd,v 1.7 2022/08/29 19:14:25 ajacoutot Exp $

  daemon="/usr/sbin/sshd"

  . /etc/rc.d/rc.subr

  pexp="sshd: ${daemon}${daemon_flags:+ ${daemon_flags}} \[listener\].*"

  rc_configtest() {
          ${daemon} ${daemon_flags} -t
  }

  rc_cmd $1
Pretty much any service/daemon is similar. You define a few things and you're done.


Here is the systemd unit for comparison:

  [Unit]
  Description=OpenBSD Secure Shell server per-connection daemon
  After=auditd.service

  [Service]
  EnvironmentFile=/etc/default/ssh
  ExecStart=/usr/sbin/sshd -i $SSHD_OPTS
  StandardInput=socket
I leave it to the reader to decide which of those two is easier to understand and maintain.


Debatable, but I was mainly reacting to "... rc.d / BSD style init scripts. It was awful. You had all these copy-pasted shell scripts with various gaps in functionality depending on who wrote them."

Simply not true in (modern) BSDs, well at least OpenBSD; I'm not familiar with the others.


Yeah, maybe it’s not inconsistent any more. But meanwhile, systemd has gotten really nice, even a good version of rc.d seems awful by comparison.

I had the same feeling when Apple came out with launchd in 2005. It felt like such a massive improvement over the existing state of things. Systemd also feels like a massive improvement.


A declarative unit file is still more readable for me.


Why in the world korn shell?

I stumbled upon an auditor with programming skills, who did all his scripting in Korn shell. To me it was like he was from another planet.


It's the standard shell on OpenBSD.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: