fix: 修复 apt 升级后服务需要手动重新启用的问题
- 修改 prerm 脚本,升级时只停止服务不禁用 - 修改 postinst 脚本,升级后自动重启已启用的服务 - 首次安装仍保持手动启用服务的行为
This commit is contained in:
16
debian/postinst
vendored
16
debian/postinst
vendored
@@ -24,7 +24,7 @@ chmod -R 750 /var/lib/mond
|
||||
|
||||
# Create configuration file if it doesn't exist
|
||||
if [ ! -f /var/lib/mond/params.conf ]; then
|
||||
cat > /var/lib/mond/params.conf << 'EOF'
|
||||
cat > /var/lib/mond/params.conf << 'CONF'
|
||||
# Mond Configuration File
|
||||
# This file is automatically created during installation
|
||||
# Edit this file to customize your Mond daemon settings
|
||||
@@ -116,7 +116,7 @@ log-level=1
|
||||
|
||||
# log-file: 日志文件保存路径
|
||||
log-file=/var/log/mond/mond.log
|
||||
EOF
|
||||
CONF
|
||||
chown mond:mond /var/lib/mond/params.conf
|
||||
chmod 640 /var/lib/mond/params.conf
|
||||
fi
|
||||
@@ -125,11 +125,19 @@ fi
|
||||
chown root:mond /opt/mond/mond
|
||||
chmod 755 /opt/mond/mond
|
||||
|
||||
# Reload systemd
|
||||
# Reload systemd and handle service restart on upgrade
|
||||
if [ -d /run/systemd/system ]; then
|
||||
systemctl daemon-reload
|
||||
|
||||
# Note: Service is NOT auto-enabled or auto-started
|
||||
# On upgrade: restart service if it was enabled
|
||||
if [ "$1" = "configure" ] && [ -n "$2" ]; then
|
||||
# $2 is the previously installed version (only set on upgrade)
|
||||
if systemctl is-enabled --quiet mond.service 2>/dev/null; then
|
||||
echo "Restarting mond service after upgrade..."
|
||||
systemctl start mond.service || true
|
||||
fi
|
||||
fi
|
||||
# Note: On fresh install, service is NOT auto-enabled or auto-started
|
||||
# Users should manually enable the service:
|
||||
# systemctl enable mond.service
|
||||
# systemctl start mond.service
|
||||
|
||||
43
debian/prerm
vendored
43
debian/prerm
vendored
@@ -1,17 +1,36 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Stop and disable service if running
|
||||
if [ -d /run/systemd/system ]; then
|
||||
if systemctl is-active --quiet mond.service; then
|
||||
echo "Stopping mond service..."
|
||||
systemctl stop mond.service
|
||||
fi
|
||||
|
||||
if systemctl is-enabled --quiet mond.service 2>/dev/null; then
|
||||
echo "Disabling mond service..."
|
||||
systemctl disable mond.service
|
||||
fi
|
||||
fi
|
||||
case "$1" in
|
||||
upgrade)
|
||||
# 升级时只停止服务,保留 enabled 状态
|
||||
if [ -d /run/systemd/system ]; then
|
||||
if systemctl is-active --quiet mond.service; then
|
||||
echo "Stopping mond service for upgrade..."
|
||||
systemctl stop mond.service
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
remove|deconfigure)
|
||||
# 删除时停止并禁用服务
|
||||
if [ -d /run/systemd/system ]; then
|
||||
if systemctl is-active --quiet mond.service; then
|
||||
echo "Stopping mond service..."
|
||||
systemctl stop mond.service
|
||||
fi
|
||||
if systemctl is-enabled --quiet mond.service 2>/dev/null; then
|
||||
echo "Disabling mond service..."
|
||||
systemctl disable mond.service
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
failed-upgrade)
|
||||
# 升级失败时不做操作
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user