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 <[email protected]>
---
 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

Reply via email to