fix:精简工程
This commit is contained in:
@@ -13,13 +13,35 @@ PYTHON_SCRIPT="web.py"
|
||||
USER="ztl"
|
||||
|
||||
SYSTEMD_SERVICE_FILE="/etc/systemd/system/${APP_NAME}.service"
|
||||
SCRIPT_PATH="$WORK_DIR/camera_manager.sh"
|
||||
SCRIPT_PATH="$WORK_DIR/bash/camera_manager.sh"
|
||||
|
||||
# 日志文件(保活日志)
|
||||
# 日志文件
|
||||
LOG_FILE="$WORK_DIR/${APP_NAME}_keepalive.log"
|
||||
# logrotate 配置文件路径
|
||||
LOGROTATE_CONF="/etc/logrotate.d/${APP_NAME}"
|
||||
|
||||
# 启动主程序(带保活循环)
|
||||
# 1. 配置 logrotate (限制日志大小为 10K)
|
||||
setup_logrotate() {
|
||||
cat > "$LOGROTATE_CONF" <<EOF
|
||||
$LOG_FILE {
|
||||
size 10k
|
||||
rotate 3
|
||||
compress
|
||||
delaycompress
|
||||
missingok
|
||||
notifempty
|
||||
copytruncate
|
||||
create 644 $USER $USER
|
||||
}
|
||||
EOF
|
||||
echo "✅ 日志轮替规则已配置 (限制 10k)"
|
||||
}
|
||||
|
||||
# 2. 启动主程序(带保活循环)
|
||||
start_app() {
|
||||
# 确保 logrotate 配置存在
|
||||
setup_logrotate
|
||||
|
||||
cd "$WORK_DIR" || exit 1
|
||||
echo "$(date): 启动 $APP_NAME 应用..." >> "$LOG_FILE"
|
||||
while true; do
|
||||
@@ -28,11 +50,16 @@ start_app() {
|
||||
else
|
||||
echo "$(date): 程序异常退出(代码 $?),5秒后重启..." >> "$LOG_FILE"
|
||||
fi
|
||||
|
||||
# 强制运行 logrotate 检查大小
|
||||
# 注意:虽然 logrotate 通常由 cron 每天运行,但这里手动调用以确保实时性
|
||||
logrotate -f "$LOGROTATE_CONF" 2>/dev/null
|
||||
|
||||
sleep 5
|
||||
done
|
||||
}
|
||||
|
||||
# 创建 systemd 服务文件
|
||||
# 3. 创建 systemd 服务文件
|
||||
create_systemd_service() {
|
||||
cat > "$SYSTEMD_SERVICE_FILE" <<EOF
|
||||
[Unit]
|
||||
@@ -61,7 +88,7 @@ EOF
|
||||
echo "✅ systemd 服务已创建: $APP_NAME"
|
||||
}
|
||||
|
||||
# 启用开机自启
|
||||
# 4. 启用开机自启
|
||||
enable_autostart() {
|
||||
# 确保 ztl 用户有串口和摄像头权限
|
||||
usermod -aG dialout ztl 2>/dev/null
|
||||
@@ -77,16 +104,17 @@ enable_autostart() {
|
||||
echo "✅ 已启用开机自启,并以 ztl 用户启动服务"
|
||||
}
|
||||
|
||||
# 禁用开机自启
|
||||
# 5. 禁用开机自启
|
||||
disable_autostart() {
|
||||
systemctl stop "$APP_NAME".service 2>/dev/null
|
||||
systemctl disable "$APP_NAME".service 2>/dev/null
|
||||
rm -f "$SYSTEMD_SERVICE_FILE"
|
||||
rm -f "$LOGROTATE_CONF" # 同时删除 logrotate 配置
|
||||
systemctl daemon-reload
|
||||
echo "✅ 已禁用开机自启,并移除服务"
|
||||
}
|
||||
|
||||
# 显示状态
|
||||
# 6. 显示状态
|
||||
show_status() {
|
||||
if systemctl is-active --quiet "$APP_NAME".service; then
|
||||
echo "🟢 服务正在运行(开机自启已启用)"
|
||||
@@ -98,7 +126,7 @@ show_status() {
|
||||
fi
|
||||
}
|
||||
|
||||
# 主菜单
|
||||
# 7. 主菜单
|
||||
show_menu() {
|
||||
echo "========================================"
|
||||
echo " LJ360 摄像头系统管理工具"
|
||||
@@ -152,4 +180,4 @@ while true; do
|
||||
;;
|
||||
esac
|
||||
echo ""
|
||||
done
|
||||
done
|
||||
Reference in New Issue
Block a user