ltq-vdsl-app: shutdown upon sigterm
authorAndre Heider <a.heider@gmail.com>
Tue, 26 Jan 2021 08:00:47 +0000 (09:00 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 8 Feb 2021 20:43:00 +0000 (21:43 +0100)
procd sends sigterm to stop daemons, hook it up.

This speeds up the shutdown sequence and gets rid of the following message:
daemon.info procd: Instance dsl_control::instance1 pid 15408 not stopped on SIGTERM, sending SIGKILL instead

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Martin Schiller <ms@dev.tdt.de>
package/network/config/ltq-vdsl-app/files/dsl_control
package/network/config/ltq-vdsl-app/patches/201-sigterm.patch [new file with mode: 0644]

index 3f3cecbca58757887ad0b3455d72e0cf1a074368..5089d7ac31a1fc8a033b82b14685f83b182d3fa3 100644 (file)
@@ -307,8 +307,6 @@ start_service() {
 }
 
 stop_service() {
-       # do not use dsl_cmd to not block when this is locked up by some other proess
-       echo quit > /tmp/pipe/dsl_cpe0_cmd
        DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
        DSL_INTERFACE_STATUS="DOWN" \
                /sbin/dsl_notify.sh
diff --git a/package/network/config/ltq-vdsl-app/patches/201-sigterm.patch b/package/network/config/ltq-vdsl-app/patches/201-sigterm.patch
new file mode 100644 (file)
index 0000000..68a416c
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/src/dsl_cpe_control.c
++++ b/src/dsl_cpe_control.c
+@@ -6504,7 +6504,7 @@ DSL_CPE_STATIC  void DSL_CPE_Termination
+    /* ignore the signal, we'll handle by ourself */
+    signal (sig, SIG_IGN);
+-   if (sig == SIGINT)
++   if (sig == SIGINT || sig == SIGTERM)
+    {
+       DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX "terminated" DSL_CPE_CRLF));
+       DSL_CPE_Termination ();
+@@ -6756,6 +6756,7 @@ DSL_int_t dsl_cpe_daemon (
+ #ifndef RTEMS
+    signal (SIGINT, DSL_CPE_TerminationHandler);
++   signal (SIGTERM, DSL_CPE_TerminationHandler);
+ #endif /* RTEMS*/
+    /* Open DSL_CPE_MAX_DSL_ENTITIES devices*/