Davin McCall [Sun, 8 Dec 2019 08:23:00 +0000 (18:23 +1000)]
Push some TODO items back to 0.9+
We already have two major features in 0.8: dinitcheck, and dinitctl
reload; that's enough for a new version.
Davin McCall [Sun, 8 Dec 2019 07:45:30 +0000 (17:45 +1000)]
dinitctl man: note that can't add non-running dep to started service
Davin McCall [Sun, 8 Dec 2019 07:29:36 +0000 (17:29 +1000)]
Clean up clang warnings
Davin McCall [Sun, 8 Dec 2019 07:26:08 +0000 (17:26 +1000)]
Update default build configs
Davin McCall [Sun, 8 Dec 2019 03:43:59 +0000 (03:43 +0000)]
Refactoring: load new / reload existing service in single function
Loading a new service and reloading a service share a lot of common
code, so refactor them into a single function.
Davin McCall [Sun, 8 Dec 2019 00:42:26 +0000 (00:42 +0000)]
Fix IGR makefile (spaces to tab)
Davin McCall [Thu, 5 Dec 2019 13:47:03 +0000 (23:47 +1000)]
Update TODO, minor updates to COMPARISON/DESIGN
Davin McCall [Thu, 5 Dec 2019 13:45:45 +0000 (23:45 +1000)]
Fix reload of stopped service
Davin McCall [Thu, 5 Dec 2019 13:45:16 +0000 (23:45 +1000)]
Add 2nd reload test
Davin McCall [Wed, 4 Dec 2019 12:19:19 +0000 (22:19 +1000)]
Set target state to STOPPED when stop is issued
Davin McCall [Tue, 3 Dec 2019 11:40:18 +0000 (21:40 +1000)]
Add integration test for reload
Davin McCall [Mon, 2 Dec 2019 11:13:32 +0000 (21:13 +1000)]
Implement additional checks for reload
The settings/flags inittab-id, inittab-line, shares-console,
runs-on-console, and pid-file cannot be changed for a running service.
Davin McCall [Sun, 1 Dec 2019 05:55:10 +0000 (15:55 +1000)]
Improve some dinitctl error messages
Davin McCall [Sun, 1 Dec 2019 05:07:44 +0000 (15:07 +1000)]
Remove unneeded release
Davin McCall [Sun, 1 Dec 2019 04:46:27 +0000 (14:46 +1000)]
Implement reload command for dinitctl
Davin McCall [Sun, 1 Dec 2019 02:44:45 +0000 (12:44 +1000)]
Implement control protocol for reloading services
Davin McCall [Sun, 1 Dec 2019 01:27:12 +0000 (11:27 +1000)]
Initial implementation of service reloading
Davin McCall [Fri, 22 Nov 2019 14:40:32 +0000 (14:40 +0000)]
dinitcheck: return EXIT_FAILURE if problem found
Davin McCall [Fri, 22 Nov 2019 13:29:57 +0000 (13:29 +0000)]
Integration test for dinitcheck dependency cycles detection
Davin McCall [Fri, 22 Nov 2019 13:19:42 +0000 (13:19 +0000)]
dinitcheck: check for and report dependency cycles
Davin McCall [Thu, 21 Nov 2019 18:44:14 +0000 (18:44 +0000)]
Fix inconsistencies/typos in help text, man pages
Davin McCall [Thu, 21 Nov 2019 18:43:48 +0000 (18:43 +0000)]
dinitcheck: support specifying services to check on command line
Davin McCall [Thu, 21 Nov 2019 16:51:37 +0000 (16:51 +0000)]
Initial manpage for dinitcheck
Davin McCall [Thu, 21 Nov 2019 16:28:28 +0000 (16:28 +0000)]
Update TODO
Davin McCall [Thu, 21 Nov 2019 16:28:12 +0000 (16:28 +0000)]
Install dinitcheck on install, clean binary on clean
Davin McCall [Thu, 21 Nov 2019 16:24:21 +0000 (16:24 +0000)]
Remove accidental marker comment
Davin McCall [Thu, 21 Nov 2019 12:09:43 +0000 (12:09 +0000)]
Add integration test for basic dinitcheck functionality
Davin McCall [Thu, 21 Nov 2019 12:06:15 +0000 (12:06 +0000)]
dinitcheck: use previously factored-out parameter processing
dinitcheck now shares parameter processing with dinit, providing
consistent error messages and parsing.
Davin McCall [Thu, 21 Nov 2019 10:41:34 +0000 (10:41 +0000)]
Factor out service parameter processing
Factor service parameter processing into a template method, to enable
sharing (later) between load_service in dinit and dinitcheck.
Davin McCall [Tue, 19 Nov 2019 18:10:27 +0000 (18:10 +0000)]
Service description loading: improve error messages
Include parameter name and improve consistency in error messages when
parsing service descriptions.
Davin McCall [Sun, 17 Nov 2019 18:39:20 +0000 (18:39 +0000)]
dinitcheck: fix checking of dependencies
Davin McCall [Fri, 15 Nov 2019 19:39:27 +0000 (19:39 +0000)]
Use common option processing for dinit/dinitcheck service dir
Davin McCall [Sat, 9 Nov 2019 07:03:15 +0000 (17:03 +1000)]
Factor out service directory option processing
Service directory options need to be processed/handled by dinit and by
dinitcheck, so factor out the processing into a separate module.
Davin McCall [Sun, 6 Oct 2019 01:58:55 +0000 (02:58 +0100)]
Fix typo in comment
Davin McCall [Sun, 6 Oct 2019 01:58:38 +0000 (02:58 +0100)]
dinitcheck: process all dependencies
Davin McCall [Sat, 21 Sep 2019 01:35:25 +0000 (02:35 +0100)]
Don't enable reporting exceptions on failbit (only to then disable).
Davin McCall [Sat, 10 Aug 2019 04:20:40 +0000 (14:20 +1000)]
Beginnings of "dinitcheck" utility
This will be a utility to check service configuration for errors/lint.
Davin McCall [Mon, 16 Sep 2019 09:02:57 +0000 (19:02 +1000)]
Convert system_error to service_load_exc in load_service.
Davin McCall [Sat, 10 Aug 2019 04:09:31 +0000 (14:09 +1000)]
More re-wording of "dinit as init" Linux documentation
Davin McCall [Tue, 10 Sep 2019 21:57:39 +0000 (07:57 +1000)]
Restore -s option to dinitctl
This is hardly needed since it is the default if run as root now, but is
nice to have for backwards compatibility / overriding -u option.
Davin McCall [Tue, 10 Sep 2019 21:30:14 +0000 (07:30 +1000)]
Update gitignore
Davin McCall [Tue, 10 Sep 2019 21:28:27 +0000 (07:28 +1000)]
Remove integration test output
Davin McCall [Mon, 9 Sep 2019 21:21:09 +0000 (07:21 +1000)]
Merge pull request #22 from travankor/makefile
Fix missing dependencies on mconfig.h in Makefile.
travankor [Mon, 9 Sep 2019 06:22:29 +0000 (23:22 -0700)]
Fix makefile.
Davin McCall [Mon, 9 Sep 2019 12:05:05 +0000 (22:05 +1000)]
Merge pull request #23 from travankor/doc-fixes
Fix typo in dinitctl man page. Document restart for help option.
travankor [Sat, 7 Sep 2019 11:28:01 +0000 (04:28 -0700)]
Fix typo in dinitctl man page. Document restart for help option.
Davin McCall [Tue, 3 Sep 2019 12:15:04 +0000 (22:15 +1000)]
Merge pull request #21 from fpoussin/contrib
Adding fpoussin to contributors
Fabien Poussin [Tue, 3 Sep 2019 11:19:36 +0000 (13:19 +0200)]
Adding myself to contributors
Davin McCall [Tue, 3 Sep 2019 10:19:09 +0000 (20:19 +1000)]
Merge pull request #20 from fpoussin/root
Adding root check on default control socket
Closes #18
Fabien Poussin [Tue, 3 Sep 2019 09:09:01 +0000 (11:09 +0200)]
Updated documentation for the new user flag
Fabien Poussin [Tue, 3 Sep 2019 09:08:37 +0000 (11:08 +0200)]
Replaced system flag with user flag
Davin McCall [Mon, 26 Aug 2019 12:16:25 +0000 (22:16 +1000)]
Merge pull request #19 from fpoussin/modules
Kernel modules script
Fabien Poussin [Mon, 26 Aug 2019 10:28:44 +0000 (12:28 +0200)]
Adding boot link for modules
Fabien Poussin [Mon, 26 Aug 2019 10:25:52 +0000 (12:25 +0200)]
Adding kernel modules script
Davin McCall [Fri, 9 Aug 2019 11:52:25 +0000 (21:52 +1000)]
Up version to 0.7.0.
Davin McCall [Thu, 8 Aug 2019 13:07:31 +0000 (23:07 +1000)]
Some documentation updates.
Davin McCall [Thu, 8 Aug 2019 12:18:26 +0000 (22:18 +1000)]
Add integration test for service "restart" function.
Davin McCall [Thu, 8 Aug 2019 11:53:32 +0000 (21:53 +1000)]
Update man page for revised restart/wake semantics.
Davin McCall [Thu, 8 Aug 2019 11:48:33 +0000 (21:48 +1000)]
Change semantics of "wake" command.
"Wake" now re-attaches dependencies (from the dependents of the named
service). You can no longer wake a service if it has no active
dependents.
Davin McCall [Wed, 7 Aug 2019 11:53:16 +0000 (21:53 +1000)]
Avoid signed-unsigned comparison warning.
Davin McCall [Wed, 7 Aug 2019 11:39:21 +0000 (21:39 +1000)]
dinitctl: update restart handling.
As per changes in dinit daemon/control protocol.
Davin McCall [Wed, 7 Aug 2019 11:04:56 +0000 (21:04 +1000)]
Re-work restart function.
Restart is now always "gentle", i.e. cannot be forced and isn't possible
when dependents (with hard dependency) exist.
Davin McCall [Wed, 7 Aug 2019 10:09:56 +0000 (20:09 +1000)]
Properly issue STARTCANCELLED message if restart is cancelled
Davin McCall [Sun, 4 Aug 2019 04:23:15 +0000 (14:23 +1000)]
Re-work state propogation/transition logic.
This mostly keeps existing behaviour, hopefully making it more
consistent and predictable in other cases, and simplifies the code.
Davin McCall [Wed, 31 Jul 2019 11:21:57 +0000 (21:21 +1000)]
Improve/refactor static_membuf.
Davin McCall [Mon, 29 Jul 2019 10:41:23 +0000 (20:41 +1000)]
Refactor some packet-building for readability and safety
Davin McCall [Sun, 28 Jul 2019 07:09:30 +0000 (17:09 +1000)]
Document dinitctl "restart" command.
Davin McCall [Sun, 28 Jul 2019 05:49:23 +0000 (15:49 +1000)]
Update TODO.
Davin McCall [Sun, 28 Jul 2019 01:50:48 +0000 (11:50 +1000)]
Up version, update NEWS.
Davin McCall [Sat, 27 Jul 2019 12:22:02 +0000 (22:22 +1000)]
stop: if not required, treat stop as full manual stop.
This is needed to properly handle shutdown when a service is alive but
not marked active.
Davin McCall [Sat, 27 Jul 2019 10:45:29 +0000 (20:45 +1000)]
Implement dinitctl restart, addresses #14
Davin McCall [Sat, 27 Jul 2019 07:03:41 +0000 (17:03 +1000)]
Don't add console watcher if not PID 1.
If not PID 1, we don't need to ask for console input. Adding a watcher
fails if we don't have a (suitable) stdin, eg FreeBSD shell if dinit is
run in background.
Davin McCall [Sat, 27 Jul 2019 06:15:09 +0000 (16:15 +1000)]
Update manpage/README for new "dinitctl stop" semantics.
"dinitctl stop" will now issue an error if dependent services would be
forced to stop. The new --force option can be used to force a service
and dependents to stop.
Davin McCall [Sat, 27 Jul 2019 06:03:21 +0000 (16:03 +1000)]
Add integration test for gentle stop/force stop.
Davin McCall [Sat, 27 Jul 2019 05:01:56 +0000 (15:01 +1000)]
Fix a bunch of issues identified by Coverity scan
Davin McCall [Sat, 27 Jul 2019 00:16:53 +0000 (10:16 +1000)]
dinitctl: print names of dependents which are inhibiting stop
Davin McCall [Tue, 23 Jul 2019 11:09:15 +0000 (21:09 +1000)]
dinitctl stop: gentle by default, implement --force.
A "gentle" stop won't stop if dependents will be affected, i.e. it warns
and aborts. The `--force' option (or `-f') can be used to force the
service to stop, which will also cause the dependents to stop.
Also sneak in a bug fix where certain options were not recognised.
Davin McCall [Mon, 22 Jul 2019 09:14:45 +0000 (19:14 +1000)]
Add control protocol query-name test
Davin McCall [Mon, 22 Jul 2019 09:02:27 +0000 (19:02 +1000)]
Update gitignore
Davin McCall [Sun, 21 Jul 2019 05:08:50 +0000 (15:08 +1000)]
Control protocol: implement QUERYSERVICENAME to get name from handle
Davin McCall [Sun, 21 Jul 2019 04:57:19 +0000 (14:57 +1000)]
Fix gentle service stop
Fix some problems with "gentle" service stop as found by test.
Davin McCall [Sun, 21 Jul 2019 05:01:37 +0000 (15:01 +1000)]
Add test for "gentle" stop.
Davin McCall [Sun, 21 Jul 2019 01:58:29 +0000 (11:58 +1000)]
Clean up fuzz test source
Davin McCall [Sat, 20 Jul 2019 08:50:41 +0000 (09:50 +0100)]
Implement careful/"gentle" service stop (abort if dependent would stop).
Davin McCall [Sun, 14 Jul 2019 04:48:32 +0000 (05:48 +0100)]
Update version, NEWS, TODO.
Davin McCall [Sun, 14 Jul 2019 01:53:39 +0000 (02:53 +0100)]
Generate man pages with m4.
Allows substituting current version and release date.
Davin McCall [Fri, 12 Jul 2019 13:28:23 +0000 (23:28 +1000)]
Log more information on exec failure.
Log failure stage as well as error-from-errno.
Davin McCall [Thu, 11 Jul 2019 12:38:19 +0000 (22:38 +1000)]
Add integration test for "chain-to" service parameter
Davin McCall [Thu, 11 Jul 2019 11:33:59 +0000 (21:33 +1000)]
Update TODO, CONTRIBUTING
Davin McCall [Thu, 11 Jul 2019 10:33:52 +0000 (20:33 +1000)]
Don't log to syslog if not running as system daemon
Davin McCall [Mon, 8 Jul 2019 10:25:27 +0000 (20:25 +1000)]
Don't put "shares console" processes in the foreground.
We don't want them to steal signals such as ^C from a real "runs on
console" process.
Davin McCall [Sat, 6 Jul 2019 02:53:45 +0000 (03:53 +0100)]
Add integration test for per-process environment.
Davin McCall [Sat, 6 Jul 2019 02:45:07 +0000 (03:45 +0100)]
Implement --socket-path option for dinitctl.
Davin McCall [Sat, 6 Jul 2019 00:05:09 +0000 (01:05 +0100)]
Implement "env-file" service setting for service-specific environment.
Davin McCall [Fri, 5 Jul 2019 11:43:17 +0000 (21:43 +1000)]
Update .gitignore.
Davin McCall [Fri, 5 Jul 2019 11:39:46 +0000 (21:39 +1000)]
Add extern definition for environ.
POSIX is somewhat ambiguous as to whether unistd.h should declare the
environ variable. It is not listed in the specific requirements for
unistd.h and OpenBSD does not declare it in that header.
Davin McCall [Fri, 5 Jul 2019 11:32:54 +0000 (21:32 +1000)]
Fix test stub for run_child_proc.
Davin McCall [Fri, 5 Jul 2019 11:17:09 +0000 (21:17 +1000)]
Make help output consistent.
Davin McCall [Fri, 5 Jul 2019 11:13:31 +0000 (21:13 +1000)]
Ignore addrspace resource limit if system has no RLIMIT_AS.
Davin McCall [Fri, 5 Jul 2019 11:03:11 +0000 (21:03 +1000)]
Add integration test framework (with 2 tests).
Run integration tests using "make check-igr". This complements the unit
tests ("make check").