Davin McCall [Sat, 25 May 2019 11:25:05 +0000 (21:25 +1000)]
Add cross-compilation support.
I.e. add HOSTCXX etc make variables, and use the host compiler when
compiling mconfig-gen.
Davin McCall [Sat, 25 May 2019 08:29:47 +0000 (18:29 +1000)]
make install: use force when creating links
Davin McCall [Sat, 25 May 2019 08:27:13 +0000 (18:27 +1000)]
Fix log flushing and clean up output in boot failure handling.
Davin McCall [Sat, 25 May 2019 07:53:03 +0000 (17:53 +1000)]
Add example recovery service.
Davin McCall [Sat, 25 May 2019 07:41:34 +0000 (17:41 +1000)]
man page: describe recovery service.
Davin McCall [Sat, 25 May 2019 07:10:34 +0000 (17:10 +1000)]
Fix waiting for console input.
Davin McCall [Sat, 25 May 2019 04:00:48 +0000 (05:00 +0100)]
Allow user to choose action when boot fails.
When all services stop with no shutdown issued, prompt user for several
possible actions.
Davin McCall [Fri, 24 May 2019 12:56:44 +0000 (22:56 +1000)]
Don't start any service during shutdown.
Davin McCall [Fri, 24 May 2019 11:49:41 +0000 (21:49 +1000)]
Rename/reverse set_auto_restart() to is_shutting_down().
Davin McCall [Fri, 24 May 2019 10:54:02 +0000 (20:54 +1000)]
Try to fix case where we can't getpgid() treating pid == pgid.
The logic behind this is: if we can't use getpgid(), it's because the
process is in a different session. If that's the case, it must be a
process group leader with pgid == pid.
Davin McCall [Fri, 24 May 2019 08:59:44 +0000 (18:59 +1000)]
log about not being able to get process group with INFO not WARN.
Davin McCall [Fri, 24 May 2019 08:58:50 +0000 (18:58 +1000)]
Fix log levels (swap console/main log).
The console should be WARN, main log should be INFO, not the other way
around. Don't want too much spurious stuff going out to the console.
Davin McCall [Thu, 23 May 2019 21:13:27 +0000 (07:13 +1000)]
Add KILL support to term-signal setting.
Also have renamed termsignal to term-signal for consistency, but the old
name remains supported.
Davin McCall [Thu, 23 May 2019 12:35:44 +0000 (22:35 +1000)]
Bump version to 0.5.1.
Davin McCall [Thu, 23 May 2019 11:20:39 +0000 (21:20 +1000)]
dinitctl: handle service dir with absolute path in enable/disable.
Davin McCall [Thu, 23 May 2019 10:39:28 +0000 (20:39 +1000)]
Update bundled Dasynq to latest (1.1.6).
Fixes critical issue on OpenBSD.
Davin McCall [Wed, 22 May 2019 10:33:15 +0000 (20:33 +1000)]
Just signal the process if we can't get the process group.
On OpenBSD (and possibly others) we can't get the process group of a
process that's in a different session, so fall back to signalling the
process.
Davin McCall [Wed, 22 May 2019 10:22:45 +0000 (20:22 +1000)]
Use SYSCONTROLSOCKET for socket path in dinitctl/shutdown.
Patches from vext01.
Davin McCall [Wed, 22 May 2019 10:13:31 +0000 (20:13 +1000)]
Another minor fix to man page.
Davin McCall [Tue, 21 May 2019 21:43:30 +0000 (07:43 +1000)]
Docs: mention "boot" service in Readme, etc.
Davin McCall [Fri, 10 May 2019 13:37:33 +0000 (23:37 +1000)]
Don't discard buffer unless >1 second has elapse since console release.
If the log subsystem releases the console, the log buffer is normally
discarded when it is re-acquired (so that stale messages are not then
displayed). This change allows for a 1 second window, so that
short-running foreground jobs don't prevent log messages being seen.
Davin McCall [Fri, 10 May 2019 10:53:27 +0000 (20:53 +1000)]
Don't fail service on failure to write utmp entry.
This can simply be the result of the utmp database not existing on the
system.
Davin McCall [Fri, 10 May 2019 10:13:19 +0000 (20:13 +1000)]
examples: create utmp file on boot.
(Revert earlier change).
Davin McCall [Fri, 10 May 2019 10:08:50 +0000 (20:08 +1000)]
Allow ctrl+alt+del when waiting for user response.
When boot fails (i.e. all services stop without shutdown issued) user is
prompted before re-starting the boot service. By allowing signal
processing, they can use ctrl+alt+del (on Linux) to reboot instead.
Davin McCall [Tue, 7 May 2019 11:59:08 +0000 (21:59 +1000)]
Rename "event_loop" label to avoid name clash.
Davin McCall [Tue, 7 May 2019 11:57:43 +0000 (21:57 +1000)]
Continue processing signals while waiting for user to ack boot restart.
When services stop without a shutdown being requested (for system init)
the user is prompted to confirm restart of boot sequence. Give them a
chance to instead reboot (via ctrl+alt+del on Linux).
Davin McCall [Sun, 5 May 2019 04:35:10 +0000 (14:35 +1000)]
Fix typo.
Davin McCall [Sun, 5 May 2019 04:22:40 +0000 (14:22 +1000)]
Implement minor suggestions from cppcheck report.
Davin McCall [Fri, 3 May 2019 10:25:15 +0000 (20:25 +1000)]
Don't need to clear utmp in rcboot.sh; dinit now does it.
Davin McCall [Fri, 3 May 2019 10:22:55 +0000 (20:22 +1000)]
Document all mconfig options.
Davin McCall [Fri, 3 May 2019 10:22:44 +0000 (20:22 +1000)]
Add support for specifying USE_UTMPX in mconfig.
Davin McCall [Fri, 3 May 2019 10:00:02 +0000 (20:00 +1000)]
Slight re-work of Musl utmp support detection.
Davin McCall [Thu, 2 May 2019 11:41:15 +0000 (21:41 +1000)]
Fix for compilation with Musl.
Musl only has stub implementations of utmp* functions, and doesn't
define _PATH_UTMPX nor _PATH_WTMPX.
Davin McCall [Thu, 2 May 2019 10:47:02 +0000 (20:47 +1000)]
Prompt to run tests or install after build.
Davin McCall [Thu, 2 May 2019 10:43:45 +0000 (20:43 +1000)]
Add mconfig to gitignore.
Davin McCall [Thu, 2 May 2019 10:42:46 +0000 (20:42 +1000)]
Update TODO.
Davin McCall [Thu, 2 May 2019 10:39:41 +0000 (20:39 +1000)]
Minor README fixes.
Davin McCall [Thu, 2 May 2019 10:39:20 +0000 (20:39 +1000)]
Choose appropriate build configuration automatically.
This could help prevent certain users, who do not read/follow the build
instructions, from becoming vexed.
Davin McCall [Wed, 1 May 2019 21:40:49 +0000 (07:40 +1000)]
Bump version to 0.5.0.
Davin McCall [Wed, 1 May 2019 21:06:31 +0000 (07:06 +1000)]
Minor improvements to dinit manpage.
Davin McCall [Wed, 1 May 2019 13:13:02 +0000 (23:13 +1000)]
Add note that inittab-id/-line have no effect if utmp not supported.
Davin McCall [Wed, 1 May 2019 12:31:59 +0000 (22:31 +1000)]
Avoid boot loop on all-service failure.
If no shutdown has been issued but all services stop, prompt user before
re-starting boot sequence.
Davin McCall [Tue, 30 Apr 2019 10:30:59 +0000 (20:30 +1000)]
Include inittab-id/-line in example tty service descriptions.
Davin McCall [Tue, 30 Apr 2019 10:28:07 +0000 (20:28 +1000)]
Guard use of inittab_id/_line with #if USE_UTMPX.
Davin McCall [Sun, 28 Apr 2019 10:19:17 +0000 (20:19 +1000)]
Document inittab-id and inittab-line service settings.
Davin McCall [Sun, 28 Apr 2019 06:40:38 +0000 (16:40 +1000)]
Clear utmp database before logging boot.
Davin McCall [Tue, 5 Mar 2019 02:59:36 +0000 (02:59 +0000)]
Update TODO.
Davin McCall [Mon, 26 Nov 2018 22:11:46 +0000 (22:11 +0000)]
Add full utmp (utmpx) support.
Davin McCall [Thu, 22 Nov 2018 15:40:13 +0000 (15:40 +0000)]
Add initial support for logging boot time to wtmp database.
Davin McCall [Fri, 23 Nov 2018 23:00:00 +0000 (23:00 +0000)]
Fix case of process termination before readiness notification.
Adds a test.
Davin McCall [Tue, 20 Nov 2018 18:32:55 +0000 (18:32 +0000)]
control: remove unused "rollback complete" reply.
The connection should close before the reply could be sent, so don't
even pretend that it will be sent.
Davin McCall [Sat, 17 Nov 2018 11:10:28 +0000 (11:10 +0000)]
Example dbusd: use readiness notification; process instead of bgprocess.
Davin McCall [Sat, 17 Nov 2018 09:58:22 +0000 (09:58 +0000)]
Fix check of executable name used for shutdown.
Davin McCall [Sat, 17 Nov 2018 09:56:33 +0000 (09:56 +0000)]
Pass correct end of readiness notification pipe to subprocess.
Davin McCall [Sat, 17 Nov 2018 00:38:46 +0000 (00:38 +0000)]
Fix "make install".
Somehow, used the wrong slashes...
Davin McCall [Sat, 17 Nov 2018 00:35:13 +0000 (00:35 +0000)]
Add "ready-notification" service option.
This allows either of the two notification methods - write to a specific
fd or to an fd identified by an environment variable.
Davin McCall [Fri, 16 Nov 2018 18:30:41 +0000 (18:30 +0000)]
Tests: add test for readiness notification via pipe.
Davin McCall [Fri, 16 Nov 2018 10:31:38 +0000 (10:31 +0000)]
Backend support for S6-style readiness notification.
No support in service configuration yet.
Davin McCall [Fri, 9 Nov 2018 21:23:17 +0000 (21:23 +0000)]
Shorten (wrap) some too-long lines.
Davin McCall [Fri, 9 Nov 2018 21:05:46 +0000 (21:05 +0000)]
Avoid 2nd call to get current time when starting process.
Davin McCall [Fri, 9 Nov 2018 18:29:39 +0000 (18:29 +0000)]
Refactoring: move process-service specific classes to process-service.h
Davin McCall [Fri, 9 Nov 2018 10:20:42 +0000 (10:20 +0000)]
Wrap too-long comment lines.
Davin McCall [Wed, 7 Nov 2018 09:37:21 +0000 (09:37 +0000)]
Fix typo in DESIGN document.
Davin McCall [Tue, 6 Nov 2018 12:36:29 +0000 (12:36 +0000)]
Makefile: fix parallel build (issue #9)
Davin McCall [Tue, 6 Nov 2018 11:34:15 +0000 (11:34 +0000)]
Update TODO (one task done).
Davin McCall [Tue, 6 Nov 2018 11:32:32 +0000 (11:32 +0000)]
Install halt and reboot as links to shutdown.
Until now, halt and reboot were shell scripts that called shutdown.
Davin McCall [Mon, 5 Nov 2018 22:01:26 +0000 (22:01 +0000)]
shutdown: clean up error handling.
Davin McCall [Mon, 5 Nov 2018 11:05:47 +0000 (11:05 +0000)]
shutdown: use argv 0 to determine default action.
If called as "reboot", default action is to reboot, otherwise to halt
and power down.
Davin McCall [Fri, 2 Nov 2018 10:39:48 +0000 (10:39 +0000)]
Add man page for shutdown et al.
Davin McCall [Tue, 30 Oct 2018 19:03:27 +0000 (19:03 +0000)]
Minor edits to dinit-service man page.
Davin McCall [Tue, 30 Oct 2018 19:01:02 +0000 (19:01 +0000)]
Implement a "shares-console" option for non-exclusive console access.
This could be useful for the "single" (single-user) service, so that
runs-on-console services can be started from it.
Davin McCall [Mon, 29 Oct 2018 19:02:59 +0000 (19:02 +0000)]
Implement a "chain-to" service property.
This specifies that if a service completes, another service should be
started (specified by name and resolved at the time it is needed, not
beforehand).
This has applications for recovery ("single-user mode") services, and
for multi-stage booting where service descriptions are on a separate
filesystem which is mounted by a service in an initial stage.
Davin McCall [Sat, 27 Oct 2018 15:24:45 +0000 (16:24 +0100)]
man page: minor additions/edits.
Davin McCall [Sat, 27 Oct 2018 15:09:50 +0000 (16:09 +0100)]
Linux: only filter "auto" from command line if running as pid 1.
Davin McCall [Mon, 29 Oct 2018 12:17:51 +0000 (12:17 +0000)]
Improve comments / fix excessively long lines.
Davin McCall [Sat, 27 Oct 2018 14:57:54 +0000 (15:57 +0100)]
dinit man page: describe general operation.
Davin McCall [Sat, 27 Oct 2018 13:33:31 +0000 (14:33 +0100)]
Add -u/--user to force running as a user service manager.
Since running as root now runs as a system service manager by default,
provide an option not to do so.
Davin McCall [Sat, 27 Oct 2018 13:09:33 +0000 (14:09 +0100)]
Fix indentation.
Davin McCall [Fri, 26 Oct 2018 09:25:07 +0000 (10:25 +0100)]
Set control_socket_open false when closing the socket.
If we booted to single-user mode, we close the socket once it exits, so
we need to open it again. Leaving control_socket_open true means that we
don't do that, so set it false.
Davin McCall [Fri, 26 Oct 2018 09:23:41 +0000 (10:23 +0100)]
Add a few comments.
Davin McCall [Fri, 26 Oct 2018 09:15:06 +0000 (10:15 +0100)]
Minor style fix.
Davin McCall [Sun, 21 Oct 2018 22:47:34 +0000 (23:47 +0100)]
Comparison: overhaul.
Davin McCall [Sun, 21 Oct 2018 20:58:10 +0000 (21:58 +0100)]
Do not try to manage system (shutdown, reboot) if not running as PID 1.
If not PID 1, assume system management is being taken care of by a
separate primary init.
Davin McCall [Sun, 21 Oct 2018 16:51:08 +0000 (17:51 +0100)]
BUILD: minor update and rename to BUILD.txt.
The rename is to prevent Github from rendering the file with syntax
highlighting, urgh.
Davin McCall [Sun, 21 Oct 2018 14:53:06 +0000 (15:53 +0100)]
man page: add notes on character set.
Davin McCall [Sun, 21 Oct 2018 14:35:43 +0000 (15:35 +0100)]
manpage: fix formatting glitch.
Davin McCall [Sun, 21 Oct 2018 13:37:45 +0000 (14:37 +0100)]
Add missing include (fixes build on musl systems)
Davin McCall [Sat, 20 Oct 2018 14:38:40 +0000 (15:38 +0100)]
docs: mention that dinitctl enable defaults to boot as dependent.
Davin McCall [Sat, 20 Oct 2018 14:26:18 +0000 (15:26 +0100)]
dinit-util: include string header (FreeBSD build fix)
Davin McCall [Sat, 20 Oct 2018 14:20:55 +0000 (15:20 +0100)]
docs: use boot.d directory with example boot service
Davin McCall [Sat, 20 Oct 2018 14:19:26 +0000 (15:19 +0100)]
Update .gitignore
Davin McCall [Sat, 20 Oct 2018 14:16:31 +0000 (15:16 +0100)]
docs: prefer elogind to ConsoleKit2
Davin McCall [Sat, 20 Oct 2018 13:27:25 +0000 (14:27 +0100)]
Update version number, TODO.
Davin McCall [Sat, 20 Oct 2018 13:17:19 +0000 (14:17 +0100)]
Add NEWS file.
Davin McCall [Sat, 20 Oct 2018 13:00:54 +0000 (14:00 +0100)]
Fix minor (non-bug) issues picked up by cppcheck.
Davin McCall [Sat, 20 Oct 2018 11:19:31 +0000 (12:19 +0100)]
Re-name and fix documentation for ss_read().
The function actually reads until the complete requested amount is read
(or it hits end-of-file or another error).
Davin McCall [Fri, 19 Oct 2018 22:00:41 +0000 (23:00 +0100)]
service description: make waits-for.d path relative to service file.
If the path specified by waits-for.d is not absolute, it will be
interpreted as relative to the directory containing the service
description file.
Davin McCall [Fri, 19 Oct 2018 08:48:54 +0000 (09:48 +0100)]
Add code style guide.
Davin McCall [Thu, 18 Oct 2018 21:24:39 +0000 (22:24 +0100)]
Minor TODO updates.
Davin McCall [Thu, 18 Oct 2018 20:33:22 +0000 (21:33 +0100)]
service start_dep(): only bump acquire count if not already holding.