diff --git a/lockfile.c b/lockfile.c
index e9e0095e9f98f9a05d2f88f5e97766930a99d89d..4023797b00fe21ecbabe3407ef8a12fca0690607 100644 (file)
--- a/lockfile.c
+++ b/lockfile.c
static void remove_lock_file_on_signal(int signo)
{
remove_lock_file();
static void remove_lock_file_on_signal(int signo)
{
remove_lock_file();
- signal(SIGINT, SIG_DFL);
+ signal(signo, SIG_DFL);
raise(signo);
}
raise(signo);
}
if (0 <= lk->fd) {
if (!lock_file_list) {
signal(SIGINT, remove_lock_file_on_signal);
if (0 <= lk->fd) {
if (!lock_file_list) {
signal(SIGINT, remove_lock_file_on_signal);
+ signal(SIGHUP, remove_lock_file_on_signal);
+ signal(SIGTERM, remove_lock_file_on_signal);
+ signal(SIGQUIT, remove_lock_file_on_signal);
atexit(remove_lock_file);
}
lk->owner = getpid();
atexit(remove_lock_file);
}
lk->owner = getpid();