aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2024-02-28 11:51:02 +0100
committerRafał Miłecki <rafal@milecki.pl>2024-02-29 16:12:06 +0100
commit0ad062a21ba3962a4532a9a209a16d0755688076 (patch)
tree46cfaa53ca781ced19b8b440d9accde1f124dda9
parente36cc530927c4294c1510d7cdf89f0b9739e6cde (diff)
base-files: sysupgrade: add uci-defaults script disabling services #2
Disabled services should be kept disabled after sysupgrade. This can be easily handled using a proper uci-defaults script. Extend sysupgrade to check for disabled services, generate uci-defaults script disabling them and include it in backup. Cc: Christian Marangi <ansuelsmth@gmail.com> Cc: Jo-Philipp Wich <jo@mein.io> Cc: Jonas Gorski <jonas.gorski@gmail.com> Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Acked-by: Jo-Philipp Wich <jo@mein.io>
-rwxr-xr-xpackage/base-files/files/sbin/sysupgrade9
1 files changed, 9 insertions, 0 deletions
diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade
index a11e17615c..78ec455067 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -236,6 +236,7 @@ include /lib/upgrade
create_backup_archive() {
local conf_tar="$1"
+ local disabled
[ "$(rootfs_type)" = "tmpfs" ] && {
echo "Cannot save config while running from ramdisk." >&2
@@ -250,6 +251,14 @@ create_backup_archive() {
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
sed -i -e 's,^/,,' "$CONFFILES"
{
+ for service in /etc/init.d/*; do
+ if ! $service enabled; then
+ disabled="$disabled$service disable\n"
+ fi
+ done
+ disabled="$disabled\nexit 0"
+ tar_print_member "/etc/uci-defaults/10_disable_services" "$(echo -e $disabled)"
+
# Part of archive with installed packages info
if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then
# Format: pkg-name<TAB>{rom,overlay,unknown}