-*- org -*-

* DONE env vars for 'make-forkexec-constructor'
  - State "DONE"       from ""           [2015-01-30 Fri 09:45]
* DONE other process types [[http://www.hep.by/gnu/pies/Component-Statement.html#SEC8][à la GNU PIES]]
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE REPL server started on a root-owned Unix-domain socket
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE 'deco status' equivalent to 'deco status dmd'			:dmd:
  - State "DONE"       from "TODO"       [2016-01-08 Fri 22:30]
* DONE 'deco status' has output similar to 'sysctl status'		:dmd:
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE [#A] 'deco status XYZ' gracefully handles errors
  - State "DONE"       from "TODO"       [2016-01-18 Mon 23:14]
* DONE [#A] regression fixed
  - State "DONE"       from "TODO"       [2016-01-12 Tue 23:01]

shepherd.scm:242:22: warning: possibly unbound variable `dmd-status'

* DONE "Internals" made less personal
  - State "DONE"       from "TODO"       [2016-01-25 Mon 23:42]
* DONE copyright year in --help
  - State "DONE"       from "TODO"       [2016-01-12 Tue 23:01]
* DONE i18n
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE select in main loop (can remove SIGALRM hack?)
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE XDG for config file
  - State "DONE"       from "TODO"       [2016-01-20 Wed 11:20]
* DONE XDG for log file
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]
* DONE make-dmd-output-port uses syslog
- State "DONE"       from "MAYBE"      [2023-05-11 Thu 16:13]
* DONE copy stuff to monitor PID files from Guix
  - State "DONE"       from "TODO"       [2016-01-25 Mon 00:07]
* DONE default conf file renamed from /etc/dmd*
- State "DONE"       from "DELEGATED"  [2023-05-11 Thu 16:13]
* DONE command modules moved to (shepherd command xyz)
  - State "DONE"       from "TODO"       [2016-01-27 Wed 11:10]
* DONE &unknown-action-error
  - State "DONE"       from "TODO"       [2016-01-20 Wed 21:26]
* DONE action record type (instead of lists)
  - State "DONE"       from "TODO"       [2016-01-26 Tue 23:22]
* DONE 'herd help'
  - State "DONE"       from "TODO"       [2016-01-24 Sun 22:54]
* TODO [#C] Texinfo in service docstrings
* DONE with-directory-excursion in 'process-command'
  - State "DONE"       from "TODO"       [2016-01-25 Mon 23:23]
* DONE 'conflicts-with' added in status sexp
  - State "DONE"       from "TODO"       [2016-01-27 Wed 10:31]
* DONE [#A] SIGCHLD received over signalfd(2) or via [[https://lwn.net/Articles/773459/][pidfd]]
- State "DONE"       from "TODO"       [2023-05-11 Thu 16:13]

* TODO REPL enters debugger only if `suspendable-continuation?'
[[gnus:nnimap+fdn-new:guix#87cyu82pbs.fsf@igalia.com][Email from Andy Wingo: Re: using shepherd's (shepherd service repl) in guix system]]

* TODO Service agent memorizes last exit status of its process

* TODO GOOPS interface removed

* TODO Guile 2.x support removed

* TODO 'at' service/timers added

https://linuxconfig.org/how-to-schedule-tasks-with-systemd-timers-in-linux
see =systemctl list-timers=

;; herd list timer -> shows current timers like 'systemctl list-timers'
;; herd at timer TIME COMMAND -> like 'at'
;; herd stop timer -> stop all the timers
;; herd stop foo-timer -> stop specific timed service

;; Vixie:
;; "minute hour day-of-month month day-of-week"

* TODO Built-in log rotation (needs timers)

* TODO 'syslogd' service added

* TODO 'herd' suggests 'herd doc SVC list-actions' upon unknown actions

* TODO 'herd status foo' shows whether there's a pending replacement

* MAYBE 'discard' service added (like [[info:inetutils#Built-in services][inetd discard]])

* CANCELED =proc_make_task_namespace= used instead of PR_SET_CHILD_SUBREAPER on GNU/Hurd
