mirror of
https://github.com/troglobit/finit.git
synced 2026-10-16 10:39:35 +00:00
Add HOOK_SVC_LOST to detect lost processes
This patch adds support for the runtime `HOOK_SVC_LOST` and the (very noisy) *example* plugin `lost.so`. Customer request. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
e54c7eef65
commit
3f3220e806
7 files changed
+90
-7
No files matched your search
+4
-4
@@ -5,12 +5,12 @@ AM_CPPFLAGS += -DFINIT_FIFO=\"$(fifo)\"
|
||||
|
||||
if STATIC
|
||||
noinst_LTLIBRARIES = libplug.la
|
||||
libplug_la_SOURCES = alsa-utils.c bootmisc.c dbus.c hwclock.c \
|
||||
initctl.c netlink.c pidfile.c resolvconf.c \
|
||||
libplug_la_SOURCES = alsa-utils.c bootmisc.c dbus.c hwclock.c \
|
||||
initctl.c lost.c netlink.c pidfile.c resolvconf.c \
|
||||
time.c tty.c urandom.c x11-common.c
|
||||
else
|
||||
pkglib_LTLIBRARIES = alsa-utils.la bootmisc.la dbus.la hwclock.la \
|
||||
initctl.la netlink.la pidfile.la resolvconf.la \
|
||||
pkglib_LTLIBRARIES = alsa-utils.la bootmisc.la dbus.la hwclock.la \
|
||||
initctl.la lost.la netlink.la pidfile.la resolvconf.la \
|
||||
time.la tty.la urandom.la x11-common.la
|
||||
|
||||
# Clean up .la files installed by libtool despite being in -module mode
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
/* Example HOOK_SVC_LOST plugin, very noisy do not use as-is!
|
||||
*
|
||||
* Copyright (c) 2016 Joachim Nilsson <troglobit@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "../finit.h"
|
||||
#include "../svc.h"
|
||||
#include "../plugin.h"
|
||||
|
||||
static void lost_pid(void *arg)
|
||||
{
|
||||
pid_t pid = (uintptr_t)arg;
|
||||
svc_t *svc;
|
||||
|
||||
svc = svc_find_by_pid(pid);
|
||||
if (!svc)
|
||||
return;
|
||||
|
||||
FLOG_INFO("Lost PID %u, svc %s", pid, svc->cmd);
|
||||
}
|
||||
|
||||
static plugin_t plugin = {
|
||||
.name = __FILE__,
|
||||
.hook[HOOK_SVC_LOST] = { .cb = lost_pid },
|
||||
};
|
||||
|
||||
PLUGIN_INIT(plugin_init)
|
||||
{
|
||||
plugin_register(&plugin);
|
||||
}
|
||||
|
||||
PLUGIN_EXIT(plugin_exit)
|
||||
{
|
||||
plugin_unregister(&plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Local Variables:
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "linux"
|
||||
* End:
|
||||
*/
|
||||
Reference in new issue
Block a user