On SIGTERM pacman was exiting immediately, even in the middle of a transaction. In this case we should leave the lock file in place as an indication that the database may not be in a consistent state. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> --- src/pacman/pacman.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 1d4459e..d6ceeae 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -334,8 +334,7 @@ static void handler(int signum) columns_cache_reset(); return; } - /* SIGINT/SIGHUP: no committing transaction, release it now and then exit pacman - * SIGTERM: release no matter what */ + /* SIGINT/SIGHUP: no committing transaction, release it now and then exit pacman */ alpm_unlock(config->handle); /* output a newline to be sure we clear any line we may be on */ xwrite(out, "\n", 1); @@ -1138,7 +1137,7 @@ int main(int argc, char *argv[]) int ret = 0; size_t i; struct sigaction new_action, old_action; - const int signals[] = { SIGHUP, SIGINT, SIGTERM, SIGSEGV, SIGWINCH }; + const int signals[] = { SIGHUP, SIGINT, SIGSEGV, SIGWINCH }; uid_t myuid = getuid(); /* Set signal handlers */ -- 2.6.3