[pacman-dev] [PATCH 04/11] do not catch SIGTERM

Andrew Gregory andrew.gregory.8 at gmail.com
Fri Dec 4 20:31:35 UTC 2015


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 at 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


More information about the pacman-dev mailing list