75 lines
2.4 KiB
Bash
Executable File
75 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
||
set -e
|
||
|
||
# Create user and group if they don't exist
|
||
if ! getent group mond >/dev/null; then
|
||
addgroup --system mond
|
||
fi
|
||
|
||
if ! getent passwd mond >/dev/null; then
|
||
adduser --system --ingroup mond --no-create-home \
|
||
--home /var/lib/mond --shell /usr/sbin/nologin \
|
||
--gecos "Mond Cryptocurrency Daemon" mond
|
||
fi
|
||
|
||
# Create log directory
|
||
mkdir -p /var/log/mond
|
||
chown mond:mond /var/log/mond
|
||
chmod 750 /var/log/mond
|
||
|
||
# Create data directory(非递归设权限,避免升级时遍历庞大的区块链数据目录)
|
||
mkdir -p /var/lib/mond/data
|
||
chown mond:mond /var/lib/mond /var/lib/mond/data
|
||
chmod 750 /var/lib/mond /var/lib/mond/data
|
||
|
||
# Create config directory
|
||
mkdir -p /etc/mond
|
||
|
||
# 兼容旧版本:配置文件曾位于 /var/lib/mond/params.conf,迁移到 /etc/mond/params.conf
|
||
if [ ! -f /etc/mond/params.conf ] && [ -f /var/lib/mond/params.conf ]; then
|
||
echo "Migrating existing config from /var/lib/mond to /etc/mond..."
|
||
cp /var/lib/mond/params.conf /etc/mond/params.conf
|
||
fi
|
||
|
||
# 首次安装:从包内默认配置生成(源:conf/params.example.conf)。升级不覆盖已有配置
|
||
if [ ! -f /etc/mond/params.conf ]; then
|
||
cp /opt/mond/params.conf /etc/mond/params.conf
|
||
fi
|
||
|
||
chown mond:mond /etc/mond/params.conf
|
||
chmod 640 /etc/mond/params.conf
|
||
|
||
# Set permissions:/opt 目录与二进制 755,数据文件 644(对齐 xxxig / xxxig-proxy)
|
||
chown -R root:root /opt/mond
|
||
find /opt/mond -type d -exec chmod 755 {} +
|
||
find /opt/mond -type f -exec chmod 644 {} +
|
||
chmod 755 /opt/mond/mond
|
||
|
||
# Reload systemd
|
||
if [ -d /run/systemd/system ]; then
|
||
systemctl daemon-reload
|
||
|
||
# 升级时重启正在运行的服务以加载新二进制;try-restart 不会启动未运行的服务,
|
||
# 故首次安装仍保持"不自动启动"语义
|
||
systemctl try-restart mond.service 2>/dev/null || true
|
||
|
||
# Note: On fresh install, service is NOT auto-enabled or auto-started
|
||
# systemctl enable mond.service
|
||
# systemctl start mond.service
|
||
fi
|
||
|
||
echo ""
|
||
echo "✅ Mond installed successfully!"
|
||
echo ""
|
||
echo "📁 Important paths:"
|
||
echo " Config file: /etc/mond/params.conf"
|
||
echo " Data directory: /var/lib/mond/data"
|
||
echo " Log directory: /var/log/mond"
|
||
echo " Binaries: /opt/mond/mond"
|
||
echo " Systemd services: mond.service"
|
||
echo ""
|
||
echo "💡 Tip: Your config files will NOT be overwritten during package upgrades."
|
||
echo ""
|
||
|
||
exit 0
|