Make Pivilion the exclusive dnsmasq owner

This commit is contained in:
v3d 2026-07-02 21:20:47 +02:00
parent 5a27dfeceb
commit 0238f3a531
3 changed files with 61 additions and 7 deletions

View file

@ -121,7 +121,7 @@ backup_managed_files() {
BACKUP_DIR=$(mktemp -d /var/backups/pivilion/install-$(date +%Y%m%d-%H%M%S).XXXXXX)
install -d -m 0700 "$BACKUP_DIR/files"
: > "$BACKUP_DIR/present"; : > "$BACKUP_DIR/missing"; : > "$BACKUP_DIR/enabled-services"; : > "$BACKUP_DIR/active-services"
for service in apache2 pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service pivilion-dnsmasq.service pivilion-hostapd.service tor.service tor@default.service; do
for service in apache2 dnsmasq.service pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service pivilion-dnsmasq.service pivilion-hostapd.service tor.service tor@default.service; do
systemctl is-enabled --quiet "$service" 2>/dev/null && printf '%s\n' "$service" >> "$BACKUP_DIR/enabled-services" || true
systemctl is-active --quiet "$service" 2>/dev/null && printf '%s\n' "$service" >> "$BACKUP_DIR/active-services" || true
done
@ -151,9 +151,9 @@ rollback() {
relative=${path#/}; rm -rf -- "$path"; install -d -m 0755 "$(dirname "$path")"; cp -a "$BACKUP_DIR/files/$relative" "$path"
done < "$BACKUP_DIR/present"
systemctl daemon-reload 2>/dev/null || true
systemctl disable apache2 pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service tor.service tor@default.service 2>/dev/null || true
systemctl disable apache2 dnsmasq.service pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service tor.service tor@default.service 2>/dev/null || true
while IFS= read -r path; do [ -n "$path" ] && systemctl enable "$path" 2>/dev/null || true; done < "$BACKUP_DIR/enabled-services"
for service in apache2 pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service pivilion-dnsmasq.service pivilion-hostapd.service tor.service tor@default.service; do
for service in apache2 dnsmasq.service pivilion-config.service pivilion-mode.service pivilion-boot-greeter.service pivilion-login-banner.service pivilion-dnsmasq.service pivilion-hostapd.service tor.service tor@default.service; do
grep -Fqx "$service" "$BACKUP_DIR/active-services" || systemctl stop "$service" 2>/dev/null || true
done
while IFS= read -r service; do [ -n "$service" ] && systemctl start "$service" 2>/dev/null || true; done < "$BACKUP_DIR/active-services"
@ -281,9 +281,10 @@ EOF
fi
migrate_legacy_console_greeter
systemctl daemon-reload
systemctl disable --now dnsmasq.service
systemctl enable apache2 pivilion-config.service pivilion-mode.service pivilion-login-banner.service
systemctl enable tor@default.service 2>/dev/null || systemctl enable tor.service
systemctl disable pivilion-dnsmasq.service pivilion-hostapd.service 2>/dev/null || true
systemctl disable pivilion-dnsmasq.service pivilion-hostapd.service
/usr/local/lib/pivilion/issue-banner.sh
command -v agetty >/dev/null 2>&1 && agetty --reload >/dev/null 2>&1 || true
}