[PATCH] introduce signal handler

Here's a patch that adds a signal handler to udev to
clean up the environment (close the sysbus and close
the database) on kill-signals.
This commit is contained in:
mbuesch@freenet.de 2003-12-30 01:21:06 -08:00 committed by Greg KH
parent 8ed89229bc
commit d12ecb53cf
1 changed files with 22 additions and 1 deletions

23
udev.c
View File

@ -28,6 +28,7 @@
#include <unistd.h>
#include <errno.h>
#include <ctype.h>
#include <signal.h>
#include "udev.h"
#include "udev_version.h"
@ -40,6 +41,22 @@
char **main_argv;
char **main_envp;
static void sig_handler(int signum)
{
dbg("caught signal %d", signum);
switch (signum) {
case SIGINT:
case SIGTERM:
case SIGKILL:
sysbus_disconnect();
udevdb_exit();
exit(20 + signum);
break;
default:
dbg("unhandled signal");
}
}
static inline char *get_action(void)
{
char *action;
@ -70,7 +87,11 @@ int main(int argc, char **argv, char **envp)
char *devpath;
char *subsystem;
int retval = -EINVAL;
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
signal(SIGKILL, sig_handler);
main_argv = argv;
main_envp = envp;