GenStudio LLM API 部分模型价格调整公告GenStudio LLM API 部分模型价格调整公告 ,新价格 2025 年 11 月 1 日生效调价公告
Skip to content

开发机启动命令

为开发机指定「启动命令」字段,让开发机在启动时自动执行特定命令,实现自定义初始化、环境验证或自动化任务。

超时限制

为了确保容器实例的快速就绪和平台稳定性,我们为自定义启动命令设置了 3 分钟的超时限制。

  • 开发机启动命令最多可执行 3 分钟。超过该时长,系统将强制终止该命令进程。
  • 开发机启动命令的目标是执行启动自动化或快速初始化任务,不宜执行长时训练或下载操作。任何耗时不可预测的任务都可能失败。
  • 若您希望执行的程序在后台持续运行(如 Jupyter、VS Code Server 等),请使用 nohup、tmux 或在命令末尾添加 & 来后台启动 。

注意

无论是否使用开发机自定义启动命令,平台都会忽略镜像中定义的 Entrypoint 或 Command。

使用场景说明

  • 推荐(低风险)

    • 使用 nohuptmux 启动已安装的服务
    • 执行轻量级的、秒级可完成的初始化脚本(如创建目录、设置环境变量)。
    • 运行快速的环境检查(如 nvidia-smi)。
  • 不推荐(高风险)

    • apt install ... / yum install ...
    • pip install -r requirements.txt / conda env create ...
    • git clone https://... (克隆大型仓库或包含 LFS 文件的仓库)
    • python download_dataset.py (下载大型数据集)
    • 原因:这些操作的耗时严重依赖于网络速度和文件大小,极易超过 3 分钟限制,导致环境配置不完整或失败。
  • 不支持

    • 由于用户自定义启动命令在 Docker 服务启动之前执行,因此并不支持在启动命令执行 「Docker 容器功能」相关操作。

注意

  • 请勿使用开发机自定义启动命令来安装环境。利用类似 nohup pip install & 命令绕开超时限制,有可能造成僵尸进程风险,后果自负。
  • 推荐使用 Dockerfile 中将所有的依赖(aptpipconda 包,以及代码等)预先构建到您的自定义镜像中。然后,仅使用自定义启动命令来启动那些已安装的服务。
  • 开发机启动后,平台会尝试自动安装 docker cli 客户端、jq、bash、openssh-server、runit、sudo、shadow-utils,无需自行安装。

推荐使用示例

如果遇到问题,请确保您要使用的工具或启动的服务(如 jupyter, tmux已预先安装在镜像中

启动后台常驻服务

如果需要启动 Jupyter Lab 这类需要长时间运行的服务,可以借助使用 nohup ... &tmux 或其他进程管理工具 让启动命令本身立即退出,而让它启动的服务进入后台

例如,使用 nohup 启动 Jupyter Lab,并在启动命令退出后让它继续运行。

bash
/bin/bash -c "nohup jupyter lab --ip=0.0.0.0 --port=8888 &"

另一个实例,在 conda 环境中启动 Jupyter:

bash
tmux new -d 'conda activate dev_env && jupyter notebook'

快速验证与轻量级初始化

检查 GPU 可用性,在容器启动时运行快速的冒烟测试或执行秒级的环境设置。

bash
/bin/bash -c "nvidia-smi && python -c 'import torch; print(torch.cuda.is_available())'"

另一个实例,执行轻量级初始化脚本:

bash
/bin/bash -c "python /workspace/init_credentials.py && echo 'Init done'"

注意

如果 init_credentials.py 脚本试图访问缓慢的网络 API,或依赖了未安装的 Python 包,可能执行失败。保证您的初始化脚本极其轻量,不依赖复杂计算或网络I/O。

查看执行日志

开发机启动命令的执行日志存储在 /var/log/user_command 目录下。

shell
root@is-db4qbnrdrqt47e65-devmachine-0:~# ls /var/log/user_command
init_2025_11_18_12_52_08.log