如何在Google Cloud上部署启动Telegram Bot及解决systemd启动报错
问题原因分析
- 核心错误为systemd配置文件中填写的工作目录、执行文件路径与实际可正常运行的路径不匹配:你手动执行的有效路径为
/home/python3/ConverterBot/main.py,但bot.service中填写的路径为/home/misha_markov1015@converterbot/ConverterBot,两者完全不一致,systemd访问不存在的路径自然会触发No such file or directory报错,返回码200/CHDIR也明确指向切换工作目录失败的问题。 - 额外排查项:确认
/usr/bin/python3是服务器上Python 3的正确可执行路径,可执行which python3命令核实实际路径,若返回结果不同需同步修改ExecStart中的Python路径。 - 权限校验:若你手动启动Bot使用的是非root用户,
root用户可能没有对应目录的访问权限,建议将bot.service中的User参数改为你实际运行Bot的普通用户,避免权限问题同时提升安全性。
解决步骤
- 编辑
bot.service配置文件,替换错误路径:
[Unit] Description=Telegram bot 'ConverterBot' After=syslog.target After=network.target [Service] Type=simple # 若使用非root用户运行请修改为对应用户名 User=root # 替换为实际存在的工作目录 WorkingDirectory=/home/python3/ConverterBot # 替换为正确的Python路径和main.py路径 ExecStart=/usr/bin/python3 /home/python3/ConverterBot/main.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
- 重新加载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart bot
- 执行
sudo systemctl status bot查看服务状态,确认正常运行即可。
内容的提问来源于stack exchange,提问作者Markov Mikhail
相关产品推荐
相关产品推荐

