-*- 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]

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

* DONE Service agent memorizes last exit status of its process

- State "DONE"       from "TODO"       [2024-04-01 Mon 22:58]
* DONE GOOPS interface removed

- State "DONE"       from "TODO"       [2024-05-07 Tue 00:03]
* DONE Guile 2.x support removed
- State "DONE"       from "TODO"       [2024-04-27 Sat 20:37]

* DONE 'at' service/timers added

- State "DONE"       from "TODO"       [2024-04-01 Mon 22:58]
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"

* DONE Built-in log rotation (needs timers) ([[info:rottlog#Configuration parameters][see logrotate method]])

- State "DONE"       from "TODO"       [2024-05-18 Sat 23:12]
* TODO 'syslogd' service added

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

* DONE 'herd status foo' shows whether there's a pending replacement
- State "DONE"       from "TODO"       [2024-04-17 Wed 10:43]
* 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

* DONE calendar-even-days-of-week takes symbols instead of numbers

- State "DONE"       from "TODO"       [2024-05-08 Wed 15:55]
* DONE after =(sleep (seconds-to-wait ...))=, find out whether we're slept
- State "DONE"       from "TODO"       [2024-04-21 Sun 22:43]

* MAYBE grab ideas from [[https://github.com/F1bonacc1/process-compose][process-compose]]

* TODO =default-environment-variables= is made stricter

* TODO LUKS lock upon suspend (elogind can invoke =herd suspend=)

  - see =dmsetup suspend= and =crypsetup luksSuspend=
  - examples: https://github.com/guns/go-luks-suspend and
    https://github.com/vianney/arch-luks-suspend

* TODO =herd start foo= displays error when =foo= is disabled

* TODO =root= service has a logger

