68 lines
1.9 KiB
Cheetah
68 lines
1.9 KiB
Cheetah
#!/usr/bin/env bash
|
|
# daily-news - Daily News 系统服务管理包装脚本
|
|
# 由 scripts/install.sh 自动生成;项目路径:{{PROJECT_DIR}}
|
|
|
|
set -euo pipefail
|
|
|
|
TIMERS=(dnews-fetch.timer dnews-push.timer)
|
|
SERVICES=(dnews-fetch.service dnews-push.service)
|
|
PROJECT_DIR="{{PROJECT_DIR}}"
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
用法: daily-news <command>
|
|
|
|
命令:
|
|
start 启动 fetch 和 push timer
|
|
stop 停止两个 timer
|
|
restart 重启两个 timer(不会立即触发 service,仅重置调度)
|
|
status [N] 查看 timer / service 状态 + 最近 N 行日志(默认 15)
|
|
logs 实时跟随日志(Ctrl+C 退出)
|
|
|
|
其他操作:
|
|
$PROJECT_DIR/scripts/install.sh 重新生成单元并安装(改 config.json 后用)
|
|
$PROJECT_DIR/scripts/uninstall.sh 完全卸载(不删数据)
|
|
EOF
|
|
}
|
|
|
|
cmd="${1:-}"
|
|
case "$cmd" in
|
|
start)
|
|
sudo systemctl start "${TIMERS[@]}"
|
|
echo "✓ Daily News 已启动"
|
|
;;
|
|
stop)
|
|
sudo systemctl stop "${TIMERS[@]}"
|
|
echo "✓ Daily News 已停止"
|
|
;;
|
|
restart)
|
|
sudo systemctl restart "${TIMERS[@]}"
|
|
echo "✓ Daily News 已重启"
|
|
;;
|
|
status)
|
|
lines="${2:-15}"
|
|
echo "═══ Timer ═══"
|
|
systemctl list-timers 'dnews-*' --no-pager || true
|
|
echo ""
|
|
echo "═══ Service 状态 ═══"
|
|
systemctl status "${SERVICES[@]}" --no-pager --lines=0 || true
|
|
echo ""
|
|
echo "═══ 最近 $lines 行日志 ═══"
|
|
journalctl --namespace=dnews -u dnews-fetch -u dnews-push -n "$lines" --no-pager
|
|
echo ""
|
|
echo "💡 实时跟随:daily-news logs"
|
|
;;
|
|
logs)
|
|
journalctl --namespace=dnews -u dnews-fetch -u dnews-push -f
|
|
;;
|
|
-h|--help|help|"")
|
|
usage
|
|
;;
|
|
*)
|
|
echo "❌ 未知命令: $cmd" >&2
|
|
echo ""
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|