windows / start_server.sh
wmdjt's picture
Update start_server.sh
6348cce verified
#!/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