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

如何在谷歌云虚拟机启动脚本中运行tmux会话,脚本不生效怎么办

谷歌云虚拟机启动脚本tmux执行失败修复方案
  • 修复shebang格式错误
    你当前脚本的首行#! /bin/bash中间存在多余空格,会导致系统无法正确识别脚本解释器,修改为#!/bin/bash即可。
  • 补全所有资源的绝对路径
    启动脚本运行时未加载用户环境变量,无法通过相对路径找到命令和文件。先在虚拟机终端执行以下命令获取各资源的绝对路径:
    which tmux
    which python3
    realpath /home/MyUser/MyFile.py
    
    替换后的脚本示例如下,若存在终端相关报错可添加-e TERM=xterm参数指定终端类型:
    #!/bin/bash
    sudo -H -u MyUser /usr/bin/tmux new-session -e TERM=xterm -d -s discord '/usr/bin/python3 /home/MyUser/MyFile.py'
    
  • 添加网络等待逻辑
    谷歌云启动脚本默认在实例初始化阶段就会运行,此时网络可能未完全就绪,如果你的Python脚本依赖网络访问,需要添加等待逻辑:
    #!/bin/bash
    # 等待10秒确保网络和用户环境加载完成
    sleep 10
    sudo -H -u MyUser /usr/bin/tmux new-session -e TERM=xterm -d -s discord '/usr/bin/python3 /home/MyUser/MyFile.py'
    
  • 添加日志输出排查问题
    如果修改后仍然不生效,可以在脚本中添加日志重定向,定位具体报错:
    #!/bin/bash
    # 所有输出写入日志文件方便排查
    exec > /var/log/tmux_autostart.log 2>&1
    sleep 10
    sudo -H -u MyUser /usr/bin/tmux new-session -e TERM=xterm -d -s discord '/usr/bin/python3 /home/MyUser/MyFile.py'
    echo "执行完成,退出码:$?"
    
    实例启动后执行cat /var/log/tmux_autostart.log即可查看具体错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:36:01