Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Nilsson 109b5bb9df Update TODO, some completed and some deprecated features
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-03 15:16:36 +02:00
Joachim Nilsson 6f61e8e915 Remove hard-coded paths to system tools available in $PATH
Since at least a44daf2 both run() and run_interactive() can access all
system tools in _PATH_STDPATH.  A system that uses non-standard paths,
e.g. /system/bin and /apps/bin, should update _PATH_STDPATH.

For reference, see issue #69 and PRs #70 and #72.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-03 13:18:42 +02:00
Joachim Nilsson 9c6e046d93 Remove hard-coded paths to system tools available in $PATH
This patch implemements a new feature of libite v1.9.1, whichp(), which
instead of fexist() that requires an absolute path, searches $PATH.

For reference, see issue #69 and PRs #70 and #72.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-03 13:13:55 +02:00
Joachim Nilsson 30822f0d68 Remove UNUSED() macro and disable the compiler warning instead
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 21:59:23 +02:00
Joachim Nilsson e46e3cdcb6 log.c: Filter debug messages by default, like before refactor
Ways to log:
- Set debug, using kernel cmdline, or edit the sources
- Change loglevel severity, default blocks > LOG_NOTICE

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 21:56:19 +02:00
Joachim Nilsson 260335a19f Usability, a servivce stopped by a user is stopped, not blocked
The generic term for a non-running service is blocked, but a service may
be blocked for several different reasons.  When a user stops a service
with `initctl stop` the intuitive expected output from `initctl show` is
"stopped" not "blocked".

When the user later restarts the service with `initctl start` it may of
course be blocked due to wrong runlevel or a missing condition.  As can
be expected from the service's configuration.

The rest of the patch refactors the internal API names a bit to reflect
this change.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 15:42:44 +02:00
Joachim Nilsson 516dbcc512 Remove --disable-quiet and quiet mode, default to a sane behavior
This patch is a follow-up to 1f1c2e0 which introduced the new semantics
for the very confusing quiet and silent modes.

The initial idea was to loosely follow the kernel cmdline 'quiet' option
and as a working concept this was good.  The resulting code, however,
became unnecessarily complex and the configure options impossible to
explain.

With this patch the quiet mode, and thus the --disable-quiet configure
option, is removed.  Finit now defaults to a sane behavior: services are
shown only at startup.   The --enable-silent option works like it did
before, silencing everything.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 13:40:54 +02:00
Joachim Nilsson 7a48240856 log.c: Do reopen syslog() when toggling debug => LOG_PERROR
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 13:19:22 +02:00
Joachim Nilsson cda5938215 helpers.c: New function, printv()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:43:41 +02:00
Joachim Nilsson cd947a69a8 log.c: New functions to hide access to quiet and silent flags
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:42:44 +02:00
Joachim Nilsson 60df2f2ea9 Minor, cleanup old requirement for clients to set silent
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:41:23 +02:00
Joachim Nilsson 51e1a907e6 log.c: New log_is_debug() function, hide access to debug variable
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:40:50 +02:00
Joachim Nilsson e9d5512e1a Refactor, simplify ... print() APIs already check if silent
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:38:35 +02:00
Joachim Nilsson bd54cf6dee log.c: New log_init() function, called at initial bootstrap
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:34:12 +02:00
Joachim Nilsson 1036c365b8 log.c: New log_exit() function, called at shutdown
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:31:38 +02:00
Joachim Nilsson 8ce330bcdb log.c: Rename log_toggle_debug() --> log_debug()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 12:28:16 +02:00
Joachim Nilsson 8161e8d153 Simplify log message from kernel cmdline parser
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-02 01:26:36 +02:00
Joachim Nilsson ec52a6a240 Set correct syslog() log level based on debug flag
Also, refactor logging to /dev/kmsg to separate function.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 22:23:53 +02:00
Joachim Nilsson 9a4f46dba4 Install log.h for external plugins
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 20:36:47 +02:00
Joachim Nilsson 5e8cb63f9a Refactor, _d() et al to use logit() instead of err.h
This patch is the first in a series of changes to clean up the internal
logging APIs of Finit:

  1. Convert log macros to use logit() for everything (this patch)
  2. Set correct syslog() log level based on debug flag
  3. Do closelog()/openlog() when toggling debug flag to control LOG_PERROR

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 20:34:37 +02:00
Joachim Nilsson d1df837d04 Refactor, move debug toggle to log.c:log_toggle_debug()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 20:34:37 +02:00
Joachim Nilsson 670f08ce51 Refactor, move logit() and log macros to log.c + log.h
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 20:34:37 +02:00
Joachim Nilsson 82661346b7 Follow-up to 885056a, collapse and simplify code
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 20:34:26 +02:00
Joachim Nilsson b2ac81540f Merge branch 'enable-disable-services'
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 18:02:52 +02:00
Joachim Nilsson fd861e1691 conf.c: Log warning for dangling .conf symlinks in /etc/finit.d/
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 17:52:15 +02:00
Joachim Nilsson 76b5bdc2c4 conf.c: Simplify .conf load/parse debug messages
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 16:06:01 +02:00
Joachim Nilsson 0ec5ad6961 TODO: Remember the idea of creating service stanzas using initctl
See issue #69 for a background.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 12:18:46 +02:00
Joachim Nilsson 1c2dcd9acc doc: Add distribution recommendations and tips, issue #71
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-07-01 12:17:57 +02:00
Joachim Nilsson 018a87286c initctl: Sort commands in usage according to topic
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-30 12:12:13 +02:00
Joachim Nilsson d0a3b4b019 Note neat feature of Solaris SMF, enable service temporarily
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-30 10:41:24 +02:00
Joachim Nilsson 3428cd48b7 Fix #71: Add support for enabling/disabling services in /etc/finit.d
This patch adds support for enabling and disabling services in
/etc/finit.d/ by adding another subdirectory:

    /etc/finit.d/available

Enabled service/run/task stanzas are by convention symlinked
to the parent dir.  The initctl tool has three new convenience
commands to facilitate operating with this:

   initctl list
   initctl enable  <CONF>
   initctl disable <CONF>

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-29 22:23:38 +02:00
Joachim Nilsson 023a881fb9 Enable more compiler warnings by default, except unused parameters
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-29 22:23:09 +02:00
Joachim Nilsson 36f38d5a13 initctl: Only append space between args, not at last arg
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-29 22:21:33 +02:00
Joachim Nilsson d4001064a0 configure: Fix hard coded FIFO path, found by previous commit
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-11 22:52:09 +02:00
Joachim Nilsson fffdad7645 configure: Add neat summary of settings, from lldpd
Hat tip to @vincentbernat

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-11 22:19:54 +02:00
Joachim Nilsson 32612929d9 doc/conditions.md: Attempt to clarify PID file dependency handling
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-10 19:49:36 +02:00
Joachim Nilsson d49683cfb6 TODO: Update and clarify introduction a bit
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-10 19:46:19 +02:00
Joachim Nilsson 9ca5ec16af doc/config.md: Minor refactor to add an Introduction section
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-10 19:44:48 +02:00
Joachim Nilsson 7041813966 Update Makefile after service script move
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-05 01:08:46 +02:00
Joachim Nilsson a31ecb32e1 Fix problem with building from a separate build directory
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-05 01:07:47 +02:00
Joachim Nilsson b1ea279940 Move helper script 'service' to contrib/
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-05 01:00:40 +02:00
Joachim Nilsson 82172e65fa Fix indentation
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-05 00:56:24 +02:00
Joachim Nilsson dfedb231dc Add MIT license badge to README
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-06-05 00:54:45 +02:00
Joachim Nilsson 5f5be8d74e Merge pull request #73 from westermo/wmo/inetd-remove-ntoh-on-proto
inetd: remove ntoh on proto
2017-04-25 13:34:19 +02:00
Joachim Nilsson 06d3161ffe Merge pull request #72 from abucodonosor/master
Some cleanup

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-28 18:43:32 +02:00
Joachim Nilsson cd5348dffd Add a set of contributing guidelines
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-21 07:58:57 +01:00
Joachim Nilsson 6e4b698fac Add Code of Conduct document
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-21 07:49:19 +01:00
Joachim Nilsson c135a83cb3 Check if /proc/bus/usb exists before trying to mount it
Most newer kernels have usbfs disabled by default.
See issue #69 for details.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-20 20:41:09 +01:00
Joachim Nilsson 37d391d53a doc/build.md: Remove mention of --enable-embedded configure option
As suggested in GitHub issue #68.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-17 16:55:02 +01:00
Joachim Nilsson d335c9833c It is difficult to write readable technical text.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-08 16:25:14 +01:00
Joachim Nilsson ab7df43ccb Clarify link target a bit
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-08 16:17:05 +01:00
Joachim Nilsson ead92b3a27 Fix Markdown link
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-08 16:15:52 +01:00
Joachim Nilsson 647a79ffbd README: Add explanation of service early and link to doc/config.md
Also, update the service help text in doc/config.md to include info on
both runlevels and explain the condition in the listed example.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-08 16:09:40 +01:00
Joachim Nilsson 47793dcdf2 sm.c: Add missing header
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-03-08 08:26:13 +01:00
Joachim Nilsson 9df0454b64 initctl: Support for utmp show FILE
This patch adds support for showing a log rotated (uncompressed)
UTMP/WTMP file in initctl.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 11:44:57 +01:00
Joachim Nilsson 5ea1ac7582 Followup to #66: Gzip log files >= .2
This patch to the logrotate() function extends the log rotattion of a
file with a gzip of .2 and older log files.  If gzip is not available
in $PATH then @num files are left uncompressed.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 11:00:17 +01:00
Joachim Nilsson 9f7604848c initctl: Remove no longer neede source files from build
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 10:21:27 +01:00
Joachim Nilsson bbbaba7b47 Minor cleanup
initctl: Replace daemon-only API from user tool
utmp-api.c: Remove not needed header

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 10:20:29 +01:00
Joachim Nilsson d56031db7d svc.c: Replace daemon-only logging API with API from err.h
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 10:19:00 +01:00
Joachim Nilsson 0f64e18f27 Relocate utmp_show() to initctl.c
Only used by this tool, no need to keep it in the shared utmp-api.c

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 10:17:41 +01:00
Joachim Nilsson 958cab8cc7 Relocate runlevel_string() to initctl.c
Only used by this tool, no need to keep it in helpers.c

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-02-10 10:11:52 +01:00
Joachim Nilsson 9974d65756 Fix #66: Rotate /var/log/wtmp log max:2, size:100k
This patch adds a simple log-rotate function to the UTMP, WTMP, BTMP,
and lastlog files.  Enabled by default, disable with:

    configure --disable-logrotate

Even though it can rotate /run/utmp it is unlikely this file will grow
that much during a system's uptime.

The hard-coded defaults are to keep up to two (2) previous versions
of the files and rotate on file size >= 100k.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-25 19:40:06 +01:00
Joachim Nilsson a0e17c8f47 Relocate create() from bootmisc plugin to helpers.h
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-25 19:40:06 +01:00
Joachim Nilsson f76268dec9 initctl: Fix build warnings after de4bf53
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-24 09:15:30 +01:00
Joachim Nilsson 8d74a12628 Fix #64: Skip fsck of already mounted devices
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-24 08:03:53 +01:00
Joachim Nilsson 33ae64495a finit.c: Mount /proc and /sys before fsck()
For issue #64 we need to have /proc/mounts, or /etc/mtab but that's
usually symlinked to /proc/mounts.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-24 07:57:19 +01:00
Joachim Nilsson 750712d28d Merge pull request #63 from mattiaswal/add-cond-dump
initctl: Add 'initctl cond dump' to show all conditions in the system
2017-01-18 19:06:48 +01:00
Joachim Nilsson 205db919f5 Move service script: $PREFIX/bin --> $PREFIX/sbin
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:43:24 +01:00
Joachim Nilsson 9b5d12bf22 Install service script wrapper in $PREFIX/bin
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:37:55 +01:00
Joachim Nilsson 3b53dfcaed configure: Simplify description
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:37:34 +01:00
Joachim Nilsson 1d39decaf1 Update .gitignore files
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:32:09 +01:00
Joachim Nilsson 8129ea32aa Remnant of GIT submodule era
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:25:03 +01:00
Joachim Nilsson 2bf024d3c3 Remnant of the old build system
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 07:23:44 +01:00
Joachim Nilsson 19d89d627b Add src/.gitignore
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:35:06 +01:00
Joachim Nilsson fff68b7b06 Relocate source files to an src/ subdirectory
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:31:02 +01:00
Joachim Nilsson 044ded3045 Fix #61: Reassert net/* conditions after initctl reload
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:09:06 +01:00
Joachim Nilsson 0cccc629bf pidfile: Ensure svc is always followed by a slash
A service need no longer be fully qualified path.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:02:40 +01:00
Joachim Nilsson 57181264e9 pidfile: Make sure to set a default name for plugin
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:02:16 +01:00
Joachim Nilsson 0b5888ed22 cond.c: Use utimensat() instead of utime() for nanosecond precision
We have repeatedly seen use-cases when sub-second resolution for
updatating the mtime of files have been needed.  Yes, all those
cases have been Autobots.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 01:00:10 +01:00
Joachim Nilsson 4321038518 bootmisc: Minor refactor
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-16 00:59:32 +01:00
Joachim Nilsson b84e32a6fe Add initctl log [SVC] command
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:21:19 +01:00
Joachim Nilsson 21a293beae Fix #60: initctl start/stop/restart ignores non-existing services
This patch improves the error handling of initctl so that it returns
non-zero if a service does not exist.

    $ initctl <start|stop|restart> SVC
    $ echo $?
    1

In verbose mode an error message is also returned:

    $ initctl -v <start|stop|restart> SVC
    No such service SVC
    $ echo $?
    1

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:15:10 +01:00
Joachim Nilsson 47b4850aa8 api.c: Factor out SVC|JOB:ID string parser
This patch breaks out the JOB:ID parser from api.c, placing it in a new
function called svc_parse_jobstr().

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:12:53 +01:00
Joachim Nilsson 1999956d91 fixup! API: Show debug level in log after initctl debug
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:07:27 +01:00
Joachim Nilsson 698f736b65 Relocate and export sanitize() function
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:06:45 +01:00
Joachim Nilsson 618744cc52 fixup! Fix compiler warnings after do_sleep() relocation
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 23:05:06 +01:00
Joachim Nilsson 67125fedab API: Show debug level in log after initctl debug
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 21:16:31 +01:00
Joachim Nilsson f7cd46abc9 API: Check input argument
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 21:15:58 +01:00
Joachim Nilsson 9f62153966 Whitespace: reindent and relocate function declaration(s)
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 20:53:13 +01:00
Joachim Nilsson 978771a3fb Fix compiler warnings after do_sleep() relocation
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-15 20:19:44 +01:00
Joachim Nilsson adc340e4c3 reboot: Use do_sleep() instead of sleep() to prevent wakeups due to SIGTERM
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-13 07:56:48 +01:00
Joachim Nilsson 50668161ad Move do_sleep() from helper.c --> util.c
This move makes it possible to share the code between the Finit daemon
and its client tools.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-13 07:55:44 +01:00
Joachim Nilsson 6507136bdd reboot: Mention why CMD_SUSPEND is not managed in regular flow
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-13 07:54:48 +01:00
Joachim Nilsson 5cdbd57875 reboot: Ignore SIGTERM at halt/poweroff
We want to emulate the behavior of the reboot() syscall on success.
Primarily for a coherency/symmetry, but also to prevent printing
a new shell prompt in the middle of system shutdown messages.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-13 07:48:00 +01:00
Joachim Nilsson 1550c34d65 reboot: Simplify applet transformation.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-13 07:47:29 +01:00
Joachim Nilsson ec6e3bc9e7 TODO: Minor update/clarification
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-11 17:45:13 +01:00
Joachim Nilsson d5942f3267 Minor whitespace fixes
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-01-11 17:40:10 +01:00
Joachim Nilsson e272710e36 Merge pull request #62 from mattiaswal/fix-fluxstate
Fix fluxstate
2017-01-11 17:21:27 +01:00
Joachim Nilsson f95cd38ddb Refactor #ifndef INETD_DISABLED --> #ifdef INETD_ENABLED
This patch changes the confusing logic in all #ifndef INETD_DISABLED
statements to instead be #ifdef INETD_ENABLED, which is quite a bit
more readable.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-12-30 13:34:31 +01:00
Joachim Nilsson d9de2717a2 Merge pull request #59 from reverendhomer/master
run: fix array overflow
2016-12-30 11:40:11 +01:00