Joachim Wiberg
4fbcd1bbad
Update copyright years
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-05 06:00:34 +02:00
Joachim Wiberg
b6c5498f43
initctl: refactor serv_enable() for readability and coding style
...
Also apply the same logic to serv_disable() to drop 40 char limit on
service names.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-05 05:40:26 +02:00
Joachim Wiberg
9a6c68c952
initctl: follow-up to 700c32fd, fix enable regression
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-05 04:32:09 +02:00
Joachim Wiberg
e8170e1216
doc: add use-case for runparts scripts
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-04 10:05:40 +02:00
Joachim Wiberg
059a4c8a86
man: document new kernel cmdline options
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-02 00:22:50 +02:00
Joachim Wiberg
0de9db68a3
system: don't warn if neither udev/udevadm or mdev is available
...
The user may have their own setup of things, by default we should not
cause unnecessary warnings in syslog.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-01 23:53:40 +02:00
Joachim Wiberg
aeff68b598
test/rclocal.sh: new test
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-05-01 23:50:57 +02:00
Joachim Wiberg
700c32fd73
Initial support for templating and instantiating services
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-24 20:14:30 +02:00
Joachim Wiberg
334d4a708a
Follow-up to e00fda5: skip bootstrap-only services when not in bootstrap
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-24 16:28:49 +02:00
Joachim Wiberg
4d472273e1
.github: debug weekly
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-23 16:47:47 +02:00
Joachim Wiberg
13f1359b3a
.github: fix and simplify weekly distcheck job
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:46:06 +02:00
Joachim Wiberg
2e5b97c8b2
plugins: check explicitly for (time_t)-1 from mktime()
...
Found by Coverity Scan.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:30:29 +02:00
Joachim Wiberg
9a962c86c8
Update docs a bit about runlevel 1.
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:11:27 +02:00
Joachim Wiberg
f954a4cb92
service_stop: add missing && do_progress for print_result()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:11:27 +02:00
Joachim Wiberg
feb97bc77c
Minor, helper function for logging runlevel as a char
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:11:27 +02:00
Joachim Wiberg
e00fda5dc3
Fix #352 : separate runlevel S from runlevel 0
...
Due to an old design decision runlevel S was encoded internally as '0',
meaning it was the same as halt/poweroff. If you want to run scripts at
system shutdown this was less then ideal since it meant your scripts
also ran at bootstrap.
This change is quite invasive. It introduces INIT_LEVEL (10) as the
value for runlevel S, meaning all code that parses and/or evaluates
anything for runlevel 0/S was affected and had to be reworked.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 15:11:27 +02:00
Joachim Wiberg
80191f2fd5
plugins: allow building with -D_FORTIFY_SOURCE[=1,2]
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-22 14:28:08 +02:00
Joachim Wiberg
42ef3d3cf7
plugins: add configure support for overriding RTC fallback datetime
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-10 16:35:42 +02:00
Joachim Wiberg
1f4acb322a
m4: simplify and fix issue with AC_PLUGIN() going out of bounds
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-10 16:33:03 +02:00
Joachim Wiberg
c3ba15045b
plugins: let dbus start as soon as possible
...
Some services (openresolv) tries to talk to it very early, so lets get
dbus up and running as soon as possible.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-27 14:28:12 +02:00
Joachim Wiberg
8f1d1717f8
initctl: let -n ignore errors from enable/disable as well
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-27 14:27:16 +02:00
Joachim Wiberg
7703d00e82
Fixed TODOs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 16:34:34 +01:00
Joachim Wiberg
3bb826b22b
Ensure all a process' children are in the same cgroup
...
The logger redirection process was sometimes in the init group instead
of the system/<svc>/ group. This was due to the parent PID being moved
after the logger was forked.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 16:32:28 +01:00
Joachim Wiberg
9ee2be121f
Fix in-service cgroup parser regression
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 16:31:43 +01:00
Joachim Wiberg
36c6aa73aa
Fix #351 : clean run tasks to prevent endless restarts
...
When we've started a run task, regardless of its exit status, we must
mark it as not dirty to prevent it from being endlessly restarted.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
13dddb6912
test: new regression test for issue #351
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
bdaf3370d4
test: sectionalize
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
a24077c4af
TODO: cond fixes and run/restart-forever test
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
414a49d733
Fix regression in .conf reload when changing runlevel
...
When the inotify callback is called for a file that has been removed,
the call to realpath() obviously fails (ENOENT). This fix only takes
the regular case into account, files removed from a symlinked enabled
directory is not handled -- needs more work for that.
Regression introduced in 0a94f3f , PR #347 , issue #346 .
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
be9d54561d
Fix WIFEXITED() logic when collecting reaped processes
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
3ce5a2a965
Minor, increased logging on failure to start external logger
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
1d03e9aa8b
Follow-up to a47abfd, fix logged PID reported by external logger tool
...
Issue #344
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
5340e47e81
Flush .conf event queue before leaving boostrap
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
98bbf4a1e5
test: add watchdog to catch runaway tests
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-21 11:24:17 +01:00
Joachim Wiberg
d70e2f1ed0
Minor refactor, rgen only needed here
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-19 09:33:33 +01:00
Joachim Wiberg
ecb5949679
Follow-up to a613ee9, handle reload as well (existing svc)
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-19 09:33:33 +01:00
Joachim Wiberg
e55fd19091
Remember to audit sysv services
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-19 08:36:52 +01:00
Joachim Wiberg
19c64e323c
Add another log macro, note()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-19 08:35:02 +01:00
Joachim Wiberg
9354221bdd
initctl: fix regression in error handling, cmmmit 4542fdb
...
Issue #339
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-19 08:32:06 +01:00
Joachim Wiberg
1d7048d3ae
system: trim delay starting udevd
...
- Apply dracut[1] and void[] linux lessons
- Drop udev-finish, not needed anymore (2015)
[1]: https://github.com/dracutdevs/dracut/blob/1ff306a3964840fc548188a8aa4862143b347e8a/modules.d/99base/init.sh#L152-L170
[2]: https://github.com/void-linux/void-runit/blob/master/core-services/02-udev.sh
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-10 18:30:50 +01:00
Joachim Wiberg
8251d713e0
devmon: reduce debug loglevel
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-10 07:52:18 +01:00
Joachim Wiberg
44d0d87ad3
Simplify, drop ifdef: let if: become ifdef
...
Post audit, concensus is to drop if: and always do post-eval of all
ifdef: statements. Also, rename ifdef: to if: for completeness.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-06 17:03:37 +01:00
Joachim Wiberg
571250a9b9
test: drop hotplug.conf system file during tests
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 10:49:14 +01:00
Joachim Wiberg
91540fd793
Issue #351 : unable to reproduce
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 10:48:45 +01:00
Joachim Wiberg
2566e00ef0
.github: finit -h now require super user privs.
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 10:12:56 +01:00
Joachim Wiberg
1e5ce38928
Return EX_NOPERM for non-root users calling init/telinit
...
See issue #301 for future per-user support.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 10:05:24 +01:00
Joachim Wiberg
c679b0a93d
Cannot be const, we're modifying it
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 09:56:54 +01:00
Joachim Wiberg
c4dcf568c8
Extend conditional load support with if:<cond> and if:<!cond>
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-05 09:47:51 +01:00
Joachim Wiberg
b65773d508
Drop logically dead code, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 12:09:50 +01:00
Joachim Wiberg
e75c1792aa
tmpfiles.d: propagate possible error from remove() in mksubsys()
...
Found by Coverity Scan.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 12:02:52 +01:00
Joachim Wiberg
0be4838e01
Fix potential NULL pointer deref, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 12:01:24 +01:00
Joachim Wiberg
b71605c819
Fix potential NULL pointer deref, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 11:59:09 +01:00
Joachim Wiberg
3bb2eb2a8d
Fix potential socket leak at bootstrap and shutdown
...
This is a follow-up to a39ee0b , found by Coverity Scan.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 11:44:48 +01:00
Joachim Wiberg
8ce35771c3
initctl: fix potential memory leak
...
Found by Coverity Scan.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 11:43:57 +01:00
Joachim Wiberg
67e80ea989
initctl: ensure the returned plugin buffer data is terminated
...
Found by Coverity Scan
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-04 11:43:10 +01:00
Joachim Wiberg
f4d8ecfb5b
getty: fix memory leak in parsing /etc/os-release
...
Found by Coverity Scan.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-03-02 21:24:24 +01:00
Joachim Wiberg
2eb3ebb404
test: /var a tmpfs to prevent tests from trampling on each other
...
Multiple parallel tests writing to the same /var leads to quite
unexpected results. Let's start fresh in each test instead.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
1e1b3564dd
Support for fsck_mode=[auto,skip,force] + fsck_repair=[preen,no,yes]
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
7af257cccf
Migrate hotplug plugin to a conditional system/hotplug.conf file
...
This is the first example of the just minted advanced stanza syntax with
if-statements, conflict handling, and nowarn flags.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
84ddac65e5
Migrate testserv plugin to a couple of lines of ASCII .conf files
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
62d6b56fd3
plugins: only run pam_console_apply if available
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
fa71f97dcf
Add support for if:[!]ident and ifdef:[!]ident for run/task/services
...
Conditional loading of stanza depending on ident is already loaded. The
if: checks as in-band while ifdef: checks out-of-band, i.e., post eval.
The optional leading '!' negates the comparison, if NOT foo then ...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
ed383eaaa6
Minor refactor, break out new fn svc_find_by_str()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
9cb6a54493
Minor refactor, new fn svc_mark()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
f796d59f77
Minor, improve log message slightly
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
97ca450966
Add support for static services in /lib/finit/system/*.conf
...
Slowly migrating away from hard-coded services in plugins. This way
it's possible for the user to both inspect and override as needed.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
e0c1c08e68
plugins: remember that bootmisc depends on pidfile plugin
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
c81b722691
tmpfiles.d: add support for 'l' and 'l+', Finit extensions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
11da93b759
Add support for Finit specific tmpfiles.d/
...
The tmpfilesd() glob sorts files according to name, we could name our
.conf as 00finit.conf to prevent ordering issues with, e.g. dnsmasq,
but this is more elegant and allows for multi-level override.
NOTE: bootmisc depends on the pidfile plugins since the latter need
to set up its iwatches of /run before bootmisc creates /run.
Depending on if it's a system with /var/run or /run we need to
drop /var/run before recreating it.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
28a90a793d
New log macro info() for LOG_INFO level logging
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
56a89db889
Add support run/task/service 'conflict:foo' handling
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:49:55 +01:00
Joachim Wiberg
a613ee908f
If a run/task/service command does not exist, skip registering it
...
This changes the semantics of Finit a bit by checking for the command to
run when registering it, skipping commands that cannot be found in the
absolute path provided in the command, or in $PATH.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
d3f58b5df0
Minor, add missing else statement
...
For completeness, never triggered.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
af88b10322
Minor, simplify
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
966ae9fb0d
Rename FINIT_LIBPATH_ -> FINIT_EXECPATH_
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
a69cef0a11
paste(): only add '/' if dir and file are missing a '/'
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
b396a018c5
test: install busybox symlinks with relative path
...
Then it works to run the applets from outside the unshare. Useful for
testing and test development.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
a4af9ba248
Add limited tmpfiles.d(5) support
...
This change adds very basic tmpfiles.d/ support to Finit. Much of the
basic types are supported, but not all, so for now, please check the
code for details on what is working.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
6942e38413
Relocate ln() helper function
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
e03bd093b5
mksubsys(): if makedir() fails with EEXIST, make sure to chmod()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
d6070a0d10
Drop old now unused /etc/network/run/ifstate
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
bd4efb59ca
Refactor, change API for create()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
a90cfd4a75
plugins: fix octal permission on /run/lock and /var/lock
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
ab5a983bf7
test: only run checkself.sh on enabled tests
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-28 00:48:25 +01:00
Joachim Wiberg
f7bacf8b1b
Add 'set' keyword for environment variables set in /etc/finit.conf
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-22 19:56:29 +01:00
Joachim Wiberg
d363501e21
Fix parse/diff of command line args, e.g., nginx -g 'daemon off;'
...
Starting a service like this works fine:
service [2345789] env:-/etc/default/nginx nginx -g 'daemon off;'
However, on `initctl reload` the previous argument was lost while
parsing the end of the new one. So the comparison always resulted
in a 'diff' causing the service to be unnecessarily restarted.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-22 19:46:33 +01:00
Joachim Wiberg
4150fdfe59
Gracefully handle leading 'boot/' in command line conditions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-17 13:14:42 +01:00
Joachim Wiberg
4d2b97e4cc
plugins: spellcheck
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-15 19:29:11 +01:00
Joachim Wiberg
21eda9dd1c
plugins: create cache dir for nginx and runstatedir for clixon
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-15 19:21:09 +01:00
Joachim Wiberg
4f7e726a3e
test: initial regression test for #351 (WIP)
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-11 16:48:21 +01:00
Joachim Wiberg
74fc16b832
test: add support for running a bootstrap config
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-11 16:47:03 +01:00
Joachim Wiberg
7393072120
Log exit status of run tasks in debug mode
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-11 16:30:34 +01:00
Joachim Wiberg
96bb3f5c6c
Merge pull request #349 from wkz/initctl-cond
...
initctl: Follow priciple of least surprise for "cond get"
Fixes regression in 4.4 release cycle, commit c3c662f , when support for FLUX condition state was added.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-06 16:13:13 +01:00
Joachim Wiberg
4f8a5a6531
Follw-up to 4894580, unbreak TTYs
...
The TTY and log configuration is overloaded using a union in svc_t, so
we cannot "reset" the log attribute on reload. In fact, a TTY should
never be allowed to have a tty:anything set, so change the parser to
ignore log options for ttys.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-06 15:47:19 +01:00
Joachim Wiberg
48e1a0b17f
Another ChangeLog update for the upcoming v4.4 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-06 12:54:54 +01:00
Joachim Wiberg
9c727ed08d
test: namespace cleanup, common -> src, tenv -> lib, etc.
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-05 19:04:48 +01:00
Joachim Wiberg
49cd3a441d
test: whitespace only
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-05 18:40:06 +01:00
Joachim Wiberg
8b9258aa73
test: rename tenv-root -> sysroot
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-05 18:19:23 +01:00
Joachim Wiberg
82c6e4680f
Fix issue with pid://../run/foo..pid parser
...
Unfortunately we cannot use realpath(3) here since the the PID files
usually do not yet exist at this point.
Add and modify my ugly de_dotdot() from Merecat httpd.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-05 18:16:27 +01:00
Joachim Wiberg
a67b2ba9a7
test: new regression test, //run/foo.pid -> /var/run///run/foo.pid
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-02-05 18:07:12 +01:00