base-files: fix unkillable processes after restart
authorLinus Kardell <linus@telliq.com>
Thu, 22 Nov 2018 10:35:08 +0000 (11:35 +0100)
committerJo-Philipp Wich <jo@mein.io>
Thu, 22 Nov 2018 12:56:37 +0000 (13:56 +0100)
When restart is run on an init script, the script traps SIGTERM. This is
done as a workaround for scripts named the same name as the program they
start. In that case, the init script process will have the same name as
the program process, and so when the init script runs killall, it will
kill itself. So SIGTERM is trapped to make the init script unkillable.

However, the trap is retained when the init script runs start, and thus
processes started by restart will not respond to SIGTERM, and will thus
be unkillable unless you use SIGKILL. This fixes that by removing the
trap before running start.

Signed-off-by: Linus Kardell <linus@telliq.com>
(cherry picked from commit 2ac1a57677ce4e21513dca2a8efab1eb6e0a9c58)

package/base-files/files/etc/rc.common

index e80af891e684fd8b6d416343ad9e09fb0d78d333..81a7d075d3f85b2494e7f798cca6c659f236634f 100755 (executable)
@@ -23,6 +23,7 @@ reload() {
 restart() {
        trap '' TERM
        stop "$@"
+       trap - TERM
        start "$@"
 }