From 3d8ee05a53660a73e87ed20c384f7e2d0d86a495 Mon Sep 17 00:00:00 2001 From: William Grzybowski Date: Wed, 13 Mar 2019 09:16:36 -0300 Subject: [PATCH] fix(rc): re-read rc.conf using ALRM to /bin/sh I previously thought that would be handled by signaling /sbin/init but obviously that is not the case. Ticket: #80472 --- src/freenas/etc/ix.rc.d/ix-etc | 3 +++ src/freenas/etc/ix.rc.d/ix-netif | 2 +- src/middlewared/middlewared/etc_files/rc.conf.py | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/freenas/etc/ix.rc.d/ix-etc b/src/freenas/etc/ix.rc.d/ix-etc index 4dc46fd7f89d..c47d515f0b49 100755 --- a/src/freenas/etc/ix.rc.d/ix-etc +++ b/src/freenas/etc/ix.rc.d/ix-etc @@ -34,6 +34,9 @@ generate_etc() [ -s /data/dhparam.pem ] || openssl dhparam -rand /dev/random 2048 > /data/dhparam.pem LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/midclt call etc.generate_all > /dev/null + + # etc rc plugin will generate rc.conf.freenas which needs to be re-read by /etc/rc script + killall -ALRM sh } name="ix-etc" diff --git a/src/freenas/etc/ix.rc.d/ix-netif b/src/freenas/etc/ix.rc.d/ix-netif index ce90d0dad0d7..afa422b6d490 100755 --- a/src/freenas/etc/ix.rc.d/ix-netif +++ b/src/freenas/etc/ix.rc.d/ix-netif @@ -230,7 +230,7 @@ netif_start() # we need to fallback to configuring interfaces using rc.d/netif for debugging. if ! /usr/local/bin/midclt -t 120 call interfaces.sync true > /dev/null 2>&1; then _interface_config > /etc/rc.conf.network - kill -ALRM 1 + killall -ALRM sh fi } diff --git a/src/middlewared/middlewared/etc_files/rc.conf.py b/src/middlewared/middlewared/etc_files/rc.conf.py index 2b57ff1b6608..f4f724ac0a8d 100644 --- a/src/middlewared/middlewared/etc_files/rc.conf.py +++ b/src/middlewared/middlewared/etc_files/rc.conf.py @@ -2,7 +2,6 @@ import itertools import os import re -import signal import subprocess import sysctl @@ -446,5 +445,4 @@ def render(service, middleware): except Exception: middleware.logger.error('Failed to generate %s', i.__name__, exc_info=True) - if write_if_changed('/etc/rc.conf.freenas', '\n'.join(rcs) + '\n'): - os.kill(1, signal.SIGALRM) + write_if_changed('/etc/rc.conf.freenas', '\n'.join(rcs) + '\n')