You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS系统GCP VM开机自动启动带预定义Token的Jupyter Notebook

解决GCP CentOS虚拟机开机自动启动指定用户Jupyter Notebook的问题

问题原因定位

报错Account or password is expired, reset your password and try again并非实际密码过期,核心问题是:

  • 开机启动脚本执行时环境变量不完整,相对路径指向错误
  • sudo -u test1在启动脚本环境中未加载用户的完整登录配置

修复步骤

1. 确认test1账号状态(排除真过期)

先检查并重置账号密码,避免账号锁定:

sudo passwd test1

执行以下命令确认账号有效期为永久:

chage -l test1

确保输出中Account expires项显示为never。

2. 修改启动脚本为绝对路径+完整环境加载

将原启动脚本替换为以下命令,解决路径和环境问题:

sudo -u test1 bash -l -c 'cd /home/test1 && nohup /home/test1/tvenv/bin/jupyter-notebook --config=/home/test1/.jupyter/jupyter_notebook_config.py &'

关键修正点:

  • 用绝对路径替代相对路径,避免启动环境中~/指向错误
  • 添加bash -l强制加载test1用户的登录环境配置,确保虚拟环境依赖正常
  • 明确指定--config参数,保证预定义Token等配置生效

3. 更新GCP开机启动脚本

在GCP控制台或通过gcloud命令,将VM的自定义启动脚本替换为上述修正后的命令。

4. 验证效果

重启VM后,执行以下命令检查Jupyter进程状态:

ps aux | grep jupyter-notebook

同时查看启动脚本日志确认无报错:

sudo journalctl -u google-startup-scripts.service

备选方案:用systemd服务管理(更稳定)

如果上述方法仍有问题,推荐使用systemd服务实现开机启动,可靠性更高:

  1. 创建systemd服务文件/etc/systemd/system/jupyter-test1.service:
[Unit]
Description=Jupyter Notebook for test1 user
After=network.target

[Service]
User=test1
Group=test1
WorkingDirectory=/home/test1
ExecStart=/home/test1/tvenv/bin/jupyter-notebook --config=/home/test1/.jupyter/jupyter_notebook_config.py
Restart=always

[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable jupyter-test1.service
sudo systemctl start jupyter-test1.service
  1. 验证服务状态:
sudo systemctl status jupyter-test1.service

重启VM后,服务会自动启动Jupyter Notebook,无需依赖GCP启动脚本。

内容的提问来源于stack exchange,提问作者folded verse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:16:36