#!/bin/bash # 最大权限应用启动脚本 echo "=== 启动最大权限应用服务 ===" # 设置环境变量 export HOME=/home/user export PATH=$HOME/miniconda/bin:$PATH # 启动SSH服务(允许远程root访问) sudo service ssh start # 启动Jupyter Lab(最大权限) echo "=== 启动Jupyter Lab服务 ===" JUPYTER_TOKEN="${JUPYTER_TOKEN:=huggingface}" NOTEBOOK_DIR="/data" # 确保目录存在 sudo mkdir -p "$NOTEBOOK_DIR" sudo chmod -R 777 "$NOTEBOOK_DIR" # 启动Jupyter jupyter labextension disable "@jupyterlab/apputils-extension:announcements" 2>/dev/null || true nohup jupyter lab \ --ip 0.0.0.0 \ --port 8006 \ --no-browser \ --allow-root \ --ServerApp.token="$JUPYTER_TOKEN" \ --ServerApp.tornado_settings="{'headers': {'Content-Security-Policy': 'frame-ancestors *'}}" \ --ServerApp.cookie_options="{'SameSite': 'None', 'Secure': True}" \ --ServerApp.disable_check_xsrf=True \ --LabApp.news_url=None \ --LabApp.check_for_updates_class="jupyterlab.NeverCheckForUpdate" \ --notebook-dir="$NOTEBOOK_DIR" > /tmp/jupyter.log 2>&1 & echo "=== 启动huggingface.gzmybz.dpdns.org应用服务 ===" # 先下载并检查脚本 SCRIPT_URL="https://raw.githubusercontent.com/yonggekkk/argosbx/main/argosbx.sh" SCRIPT_PATH="/tmp/argosbx.sh" # 下载脚本(添加重试机制) for i in 1 2 3 4 5; do echo "下载脚本尝试 $i/5" if curl -f -L -s "$SCRIPT_URL" -o "$SCRIPT_PATH"; then echo "脚本下载成功" chmod +x "$SCRIPT_PATH" break else echo "下载失败,重试 $i/5" sleep 2 fi done # 检查脚本是否下载成功 if [ -f "$SCRIPT_PATH" ] && [ -s "$SCRIPT_PATH" ]; then # 设置环境变量并执行 export nix="y" export vmpt="35424" export uuid="732b0a61-765c-45df-930a-71de36ba11fd" export argo="y" export agn="huggingface.gzmiyue.cn" export agk="eyJhIjoiYjEyYTg0YTUzMzA3ZTJjZjBiODg2NWEzY2Y0NWUxMzYiLCJ0IjoiZjhjNjQxZGMtZGY3Ny00OTY1LTk1NGQtYWY3ODg2NWE2ZDlhIiwicyI6Ik5XSXlPV1kwWWpFdE9HTTBOQzAwTlRobExXRmtOamN0WXpJMVlXRmxZek0wTXpSbSJ9" echo "正在启动Argo服务..." bash "$SCRIPT_PATH" ARGO_RESULT=$? if [ $ARGO_RESULT -eq 0 ]; then echo "=== 完成huggingface.gzmiyue.cn应用服务 ===" else echo "=== Argo服务启动失败,错误码: $ARGO_RESULT ===" fi else echo "=== 警告:无法下载Argo脚本,跳过此服务 ===" fi # 显示服务状态 echo "=== 服务启动状态 ===" echo "Jupyter Lab: http://localhost:8006 (token: $JUPYTER_TOKEN)" echo "Gradio服务: 端口 7860, 8000, 8001, 8002" echo "SSH服务: 端口 22 (root/user:password)" echo "GPU监控: 运行中" # 保持容器运行 echo "=== 所有服务已启动 ===" echo "=== 进入监控模式 ===" # 监控进程并保持容器运行 while true; do sleep 60 # 检查关键进程是否存活 if ! pgrep -f jupyter > /dev/null; then echo "Jupyter进程停止,尝试重启..." nohup jupyter lab --ip 0.0.0.0 --port 8006 --no-browser --allow-root --ServerApp.token="$JUPYTER_TOKEN" --notebook-dir="$NOTEBOOK_DIR" > /tmp/jupyter.log 2>&1 & fi done