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:
Joachim Nilsson committed 2016-04-05 03:33:58 +02:00
1 parent e54c7eef65
commit 3f3220e806
7 files changed
+90 -7

No files matched your search

+4 -4
View File
@@ -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
+60
View File
@@ -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:
*/