|
|
#!/bin/bash |
|
|
# 张大师 Agent 启动脚本 |
|
|
# 用法:source /root/.openclaw/workspace/scripts/start-life-agent.sh |
|
|
|
|
|
set -e |
|
|
|
|
|
AGENT_NAME="张大师 (Life)" |
|
|
AGENT_ID="life" |
|
|
AGENT_PORT="18790" |
|
|
WORKSPACE="/root/.openclaw/workspace" |
|
|
SYSTEMD_SERVICE="agent-life.service" |
|
|
|
|
|
echo "🔮 正在启动 $AGENT_NAME..." |
|
|
|
|
|
# 1. 设置环境变量 |
|
|
export NODE_ENV=production |
|
|
export AGENT_ID=$AGENT_ID |
|
|
export AGENT_PORT=$AGENT_PORT |
|
|
export DASHSCOPE_API_KEY="sk-4111c9dba5334510968f9ae72728944e" |
|
|
export TAVILY_API_KEY="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" |
|
|
export XDG_RUNTIME_DIR=/run/user/0 |
|
|
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus" |
|
|
|
|
|
# 2. 创建运行时目录 |
|
|
mkdir -p /run/user/0 |
|
|
chmod 700 /run/user/0 |
|
|
|
|
|
# 3. 创建日志目录 |
|
|
mkdir -p $WORKSPACE/logs/agents/life |
|
|
|
|
|
# 4. 检查用户级 systemd 环境 |
|
|
if ! systemctl --user status > /dev/null 2>&1; then |
|
|
echo "⚠️ 用户级 systemd 不可用,启用 linger..." |
|
|
loginctl enable-linger root |
|
|
fi |
|
|
|
|
|
# 5. 复制 systemd 服务文件 |
|
|
echo "📋 配置 systemd 服务..." |
|
|
cp $WORKSPACE/systemd/$SYSTEMD_SERVICE /etc/systemd/system/ |
|
|
systemctl daemon-reload |
|
|
|
|
|
# 6. 启用并启动服务 |
|
|
echo "🚀 启动 $AGENT_NAME 服务..." |
|
|
systemctl enable $SYSTEMD_SERVICE |
|
|
systemctl start $SYSTEMD_SERVICE |
|
|
|
|
|
# 7. 验证状态 |
|
|
sleep 3 |
|
|
if systemctl is-active --quiet $SYSTEMD_SERVICE; then |
|
|
echo "✅ $AGENT_NAME 已成功启动!" |
|
|
echo " - 端口:$AGENT_PORT" |
|
|
echo " - Agent ID: $AGENT_ID" |
|
|
echo " - 日志:journalctl -u $SYSTEMD_SERVICE -f" |
|
|
echo " - 状态:systemctl status $SYSTEMD_SERVICE" |
|
|
else |
|
|
echo "❌ $AGENT_NAME 启动失败!" |
|
|
echo " 查看日志:journalctl -u $SYSTEMD_SERVICE -n 50" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
# 8. 注册 cron 任务 |
|
|
echo "⏰ 注册定时任务..." |
|
|
cp $WORKSPACE/agents/life-cron-jobs.json /root/.openclaw/cron/jobs-life.json |
|
|
echo " 定时任务已配置:每天 21:00 推送运程" |
|
|
|
|
|
echo "" |
|
|
echo "🎉 张大师部署完成!"
|
|
|
|