Joachim Wiberg
5599aca0a3
.github: generate documentation using mkdocs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-09 11:50:38 +02:00
Joachim Wiberg
d77773d8ee
doc: massive refactor and simplification to migrate to mkdocs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-09 11:50:38 +02:00
Joachim Wiberg
a73e02afac
Minor fixups
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 09:24:07 +02:00
Joachim Wiberg
a3c5dfd543
doc: minor, remember the single quotes
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 09:23:51 +02:00
Joachim Wiberg
4c208c18e2
Update ChangeLog and bump version for -beta1
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 07:02:17 +02:00
Joachim Wiberg
0a9ac65609
doc: update with $MAINPID notice
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 07:00:52 +02:00
Joachim Wiberg
167d75ac4a
test: update to verify $MAINPID
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 07:00:47 +02:00
Joachim Wiberg
0cd51fb7d3
Add support for $MAINPID to reload, and stop:scripts
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-08 06:59:53 +02:00
Joachim Wiberg
bf2c0542ca
Merge branch 'dev'
...
Fixes to issues found by Coverity Scan
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:53:12 +02:00
Joachim Wiberg
0bef874cf3
logit: fix evaluation order violation, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:49:01 +02:00
Joachim Wiberg
eadd01da1f
Fix double-close, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:46:57 +02:00
Joachim Wiberg
80b0750523
Simplify if-if-else-if-else in service_start()
...
Coverity Scan gets very confused and think we are leaking sd in
the systemd notify case.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:45:44 +02:00
Joachim Wiberg
4525aec118
libsystemd: fix socket leak in sd_notify()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:17:09 +02:00
Joachim Wiberg
61be1ef880
Follow-up to b4b7ee1, also set process name -> "init"
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:15:25 +02:00
Joachim Wiberg
a7428ababa
logit: fix minor (possible) memory leak
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 15:14:38 +02:00
Joachim Wiberg
b4b7ee1b71
Clear command line arguments after parsing
...
Fixes #442
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 14:41:40 +02:00
Joachim Wiberg
ff91d5c836
Follow-up to d37d241, add missing log.h to all plugins
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 14:40:07 +02:00
Joachim Wiberg
d652211621
Follow-up to db840bd, use systemf() to simplify tmpfiles evn further
...
Also, added benefit, we don't get compiler warnings for ignoring the
return value of system(), which we don't care about in this case.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 14:38:27 +02:00
Joachim Wiberg
9f95934df9
Follow-up to 57545e1
...
Ensure 'rc' is defined for all code branches.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 14:35:49 +02:00
Joachim Wiberg
261d604ea3
test: minor refactor, relocate "Test done ..." message to setup.sh
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 14:17:42 +02:00
Joachim Wiberg
085fc4c660
Merge branch 'reload-script'
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 13:58:31 +02:00
Joachim Wiberg
ce7d4cebab
test: minor refactor, relocate "Test start ..." message to setup.sh
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 13:31:29 +02:00
Joachim Wiberg
d5a47e2d8b
doc: document new stop:script support
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 13:22:11 +02:00
Joachim Wiberg
020eefe732
test: extend start-stop-sysv to verify stop:script support
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 13:21:50 +02:00
Joachim Wiberg
14336bd407
Add stop:'script [args]' support for service/sysv stanzas
...
Fixes #412
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 13:20:46 +02:00
Joachim Wiberg
bb841383b8
doc: document new reload:script support
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 12:05:59 +02:00
Joachim Wiberg
e49763d834
test: extend start-stop-sysv to verify reload:script support
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 12:05:58 +02:00
Joachim Wiberg
57545e1ab0
Add reload:'script [args]' support for service/sysv stanzas
...
Fixes #446
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 12:05:51 +02:00
Joachim Wiberg
7ad802b092
Add quote support to pre/post/ready/cleanup scripts
...
- Allow scripts to take space separated arguments with quoting
- Simplify script-exists check, which already checks for leading /
- Unset current script on parse error
- Allow setting no timeout
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 12:00:02 +02:00
Joachim Wiberg
e319a606b8
tmpfiles: minor, fix memory leak
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 11:36:56 +02:00
Joachim Wiberg
7d434b1eaa
Ignore new tmpfiles binary
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:28:42 +02:00
Joachim Wiberg
58d48b54b3
tmpfiles: add -d,--debug mode
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:28:02 +02:00
Joachim Wiberg
7d4603e13b
Minor, simplify
...
clang-tidy noticed this unnecessary check.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:07 +02:00
Joachim Wiberg
d0c5d7be5b
Minor, constify
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:05 +02:00
Joachim Wiberg
db840bdc19
Follow-up to 8be7a46, simplify linking of tmpfiles program
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:04 +02:00
Joachim Wiberg
3df3c51dae
Relocate global configuration variables from finit.c -> conf.c
...
These variables really belong in conf.c. Relocate and move external
decls. from finit.h -> conf.h to simplify linking of other programs.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:03 +02:00
Joachim Wiberg
d37d241647
Drop log.h include from helpers.h
...
With the relocation of several functions, including inline functions,
from helpers to util, we no longer need to include log.h. Which is a
good thing, since any subsystem that needs logging should explicitly
include log.h
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:02 +02:00
Joachim Wiberg
b18b21830a
Relocate functions helpers.c -> util.c
...
The file helpers.c should strictly only be used for misc. helper
functions to the main Finit daemon. The functions moved in this
commit are generic enough to be used by any deamon or programs,
and for that we have util.c
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:14:00 +02:00
Joachim Wiberg
06daf2e4a5
Relocate helper function, only used by tmpfiles
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:13:59 +02:00
Joachim Wiberg
eb13ccc227
plugins: minor, rename local functions
...
Prevent name clash with upcoming refactor and any confusion with
src/plugin.c functions with the same name.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:13:58 +02:00
Joachim Wiberg
0861373d14
Minor, relocate path definition to finit.h
...
This is where the other path definitions live.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:13:57 +02:00
Joachim Wiberg
1b9e69414e
Refactor state machine control functions
...
This refactor should have been done years ago when we first introduced
the big state machine. The old functions service_runvel() and the oddly
named service_reload_dynamic() are actually state machine control fns,
so let relocate them.
Also in this commit, remove the global variable 'sm' and rename a few of
the critical functions to better names.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:13:56 +02:00
Joachim Wiberg
39f4aa3f2c
Simplify, a daemon is one of service or sysv
...
Historically we've kept these two apart, but their commonalities are far
more than what separates them.
This fixes a bug where ready:scripts were not called for sysv daemons,
and also opens up for adding support for a reload:script for both types.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-06 03:13:54 +02:00
Joachim Wiberg
dedb56a9d0
Merge branch 'refactor-systemd-readiness'
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-04 16:45:37 +02:00
Joachim Wiberg
a27903c745
libsystemd: translate leading log <LEVEL> in stderr logging
...
This commit also switches the stdout/stderr log capture backend for all
notify:systemd services from the sysklogd project's logger tool to the
bundled logit tool.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:47:34 +02:00
Joachim Wiberg
f24f76fc80
logit: parse leading <LEVEL> in log messages
...
Add support for systemd daemon log style.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:43:44 +02:00
Joachim Wiberg
d95fc5f790
logit: fix parse_prio(), check result of parse
...
clang-tidy complained that parse_prio() always returned OK(0), turns out
it was right. This patch adds validation of the parsing.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:43:43 +02:00
Joachim Wiberg
10a1257e47
logit: minor cleanup, reverse christmas tree
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:43:43 +02:00
Joachim Wiberg
a7b8e1b94d
libsystemd: expand with with some common sd-daemon(3) functions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:43:42 +02:00
Joachim Wiberg
da83462731
libsystemd: new library, refactor sd-daemon.[ch] test code
...
This commit introduces a bare-bones replacement for libsystemd:
- Build .so file and add --with-libsystemd to configure
- Add capabilities support to test/src/serv.c
- Update tests to account for a Finit built w/o libsystemd support
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:42:06 +02:00
Joachim Wiberg
1396177706
test: expand with command line options for increased usability
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:42:05 +02:00
Joachim Wiberg
7cf0a293fd
test: adjust unexpected-restart.sh for proper systemd/s6 notify
...
A systemd service should only use NOTIFY_SOCKET and an s6 style
service reads its notify descript from the command line. For
details, see notify.sh
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:59 +02:00
Joachim Wiberg
d0d9b83b66
test: update serv daemon to use proper systemd abstract socket
...
This commit introduces a stripped down sd_notify(), taken from the
systemd man page example, which is used by the serv daemon in lieu
of the previous broken implementation.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:59 +02:00
Joachim Wiberg
76f8a18816
Fix #440 : refactor systemd and s6 readiness notifcation
...
This patch fixes issue #440 which details how systemd readiness
notification has been broken since its inception in Finit.
In addition to now providing a proper abstract socket, the refactor
also drops the reliance on the Finit client API to fetch a socket.
Now an s6 descriptor is the write end of a pipe() and the systemd
socket is instead created before forking off the service.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:58 +02:00
Joachim Wiberg
dc497bcd57
service: slight improvement of restart log message
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:58 +02:00
Joachim Wiberg
0da6bbe4a8
service: minor refactor of stdin redirect
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:57 +02:00
Joachim Wiberg
91f7a75bee
api: ensure socket is non-blocking
...
Also, remember to refactor the client socket handling to prevent
blocking PID 1.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:57 +02:00
Joachim Wiberg
f217d493b4
test: add --map-auto to unshare call
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 16:36:52 +02:00
Joachim Wiberg
77404a2ea0
Merge pull request #445 from troglobit/space-in-argval
...
Space in argval
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:50:21 +02:00
Joachim Wiberg
d42a1d438b
Merge pull request #444 from aanderse/master
...
service.c/parse_cmdline_args: handle loooooong arguments
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:43:00 +02:00
Joachim Wiberg
1275f05343
devmon: add error checking to callback
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:29:54 +02:00
Joachim Wiberg
61a92aa0b6
devmon: silence unnecessary dbg() in devmon_add_cond()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:29:54 +02:00
Joachim Wiberg
b38ff0cc79
service: fix service log priority in fallback mode
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:29:53 +02:00
Joachim Wiberg
168f5bf1d8
log: new function, log_parse()
...
Converts from syslog priority string format to facility and level.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:29:53 +02:00
Joachim Wiberg
ffd00f646c
Declare unused parameters
...
When building with global CFLAGS=-Wunused-parameter the output from the
build looks terrible. This commit explicitly declares unused variables
to prevent triggering -Wunused-parameter
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:29:52 +02:00
Joachim Wiberg
5e2e273cad
conf: check return value of strdup() in parse_env()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:28:41 +02:00
Joachim Wiberg
33f6697cd5
conf: new function conf_parse_env()
...
Reduce code duplication.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:28:27 +02:00
Joachim Wiberg
6f0ba22a0f
util: new function unquote()
...
Refactor to reduce code duplication
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:28:10 +02:00
Joachim Wiberg
ecb690c9ec
service: support quoted arguments to run/task/service options
...
Fixes #441
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-07-02 14:27:39 +02:00
Joachim Wiberg
2760616c73
Merge pull request #443 from liuming50/fix-some-compilation-issues
...
Fix some compilation issues
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-06-29 12:36:17 +02:00
Joachim Wiberg
8be7a462e0
Merge pull request #439 from aanderse/tmpfiles
...
tmpfiles: refactor into separate executable
2025-06-09 07:56:10 +02:00
Joachim Wiberg
051ef81e53
initctl: drop unused function pid_comm()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-30 10:45:01 +02:00
Joachim Wiberg
90993c237a
Add hexdump() debug helper function
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-30 10:44:05 +02:00
Joachim Wiberg
b0b4f7b2ba
initctl: refactor pid_cgroup(), return allocated buffer
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-30 10:42:50 +02:00
Joachim Wiberg
4d79d84fb8
Fix #438 : refactor initctl ps/top to handle loooooong command lines
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-30 10:21:24 +02:00
Joachim Wiberg
d318aa00c3
Merge branch 'asan'
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-05 07:37:26 +02:00
Joachim Wiberg
9684127eb7
initctl: refactor runlevel string composition
...
Related to issue #437
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-05 07:27:06 +02:00
Joachim Wiberg
8d2cfd69fa
initctl: buffer overflow in runlevel string formatting
...
Fix #437
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-05 07:19:12 +02:00
Joachim Wiberg
4f252858e4
Enable address sanitizer, credits to @chipitsine
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-05 06:55:08 +02:00
Joachim Wiberg
1ccd1d6926
Bump version for 4.13 release cycle
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-05 06:54:27 +02:00
Joachim Wiberg
b87c51209d
doc: attempt to clarify service sync a bit
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-05-04 07:23:07 +02:00
Joachim Wiberg
6b7478ff43
Update ChangeLog and bump version for v4.12 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-04-28 00:23:10 +02:00
Joachim Wiberg
6c4c16cbdb
Update ChangeLog for v4.12
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-04-28 00:04:39 +02:00
Joachim Wiberg
e539dbfe37
Merge pull request #436 from sirocyl/patch-1
...
README.md: typo
2025-04-27 09:56:17 +02:00
Joachim Wiberg
c9c268f218
plugins: fix variable overloading warning in urandom plugin
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-04-07 12:55:01 +02:00
Joachim Wiberg
3feff37ba5
plugins: use byte addressing of rand_pool_info data buffer
...
Fix out-of-bounds write in urandom plugin.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-04-07 12:52:16 +02:00
Joachim Wiberg
c67d15e272
runparts: update usage text, missing '-b' flag for batch mode
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-31 14:17:55 +02:00
Joachim Wiberg
8984c655f8
cond_get_agg: minor refactor
...
- Use stack instead of heap memory
- constify
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-31 14:16:24 +02:00
Joachim Wiberg
1a7b26bac3
Bump version for 4.12 release cycle
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-31 07:49:05 +02:00
Joachim Wiberg
1f47718012
Merge pull request #435 from aanderse/master
2025-03-29 13:28:15 +01:00
Joachim Wiberg
185a72bd14
Bump version for v4.11 GA release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 19:29:48 +01:00
Joachim Wiberg
cd32c623cf
plugins: ignore PID file events for svc_t in setup/teardown/cleanup
...
An svc_t (service/sysv) that is in setup, teardown, or cleanup state
must be ignored by the pidfile plugin for any events regarding PID
files. E.g., a setup script for a sysv service may create a PID file
to alert the system that a setup process for the service is running.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 19:17:04 +01:00
Joachim Wiberg
ac4b9c2f93
Unblock signals for pre/post/ready/cleanup scripts
...
The service_fork() function blocks all signals for the new process, it
is up to the callee to call sig_unblock() before calling exec().
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 19:10:56 +01:00
Joachim Wiberg
5e9591d0a8
Set correct -rc version
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 10:46:16 +01:00
Joachim Wiberg
e3bcf9bf16
Update ChangeLog and bump version for v4.11 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 10:28:39 +01:00
Joachim Wiberg
84fd3196b0
doc: clarify what is required for moving from runlevel S to 2
...
All run/tasks must complete before Finit moves to runlevel 2. This
critical piece of information has mysteriously been missing from the
documentation since the start.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 10:23:11 +01:00
Joachim Wiberg
994e51e34f
Convert **Note:** et al to GitHub Markdown alerts
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-27 10:23:10 +01:00
Joachim Wiberg
0a7814b391
Merge commit from fork
...
Improve argument handling when launching login
2025-03-27 07:00:54 +01:00
Joachim Wiberg
73f72b39cf
Merge pull request #433 from aanderse/patch-1
2025-03-22 19:27:41 +01:00
Joachim Wiberg
6528628b5c
getty: improve argument handling when launching login
...
Add explicit argument separator before username to ensure correct
parsing of the login command regardless of username format. This
follows best practices for command execution and prevents unexpected
behavior when processing special characters in usernames.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-03-18 13:18:10 +01:00