【发布时间】:2021-01-16 08:51:03
【问题描述】:
我有以下:
#! /usr/bin/python3.7
f=open("python_out.txt",'w',encoding='utf-8')
f.write("OK1")
import socket
import telegram
f.write("OK2")
BOT_TOKEN = "telegram BOT_TOKEN"
CHAT_ID = "chat_id"
bot = telegram.Bot(token=BOT_TOKEN)
host_name = socket.gethostname()
content = 'Machine name: %s is shutting down!' % host_name
bot.send_message(chat_id=CHAT_ID, text=content)
f.write("OK3")
我已经检查了我的环境,我可以通过python3 script.py使这个脚本在实例中运行,它可以发送通知并输出python_out.txt。
我将此脚本设置为shutdown-script
但是当我手动单击“停止”按钮时,它没有按预期工作。 startup-script 也是。
我看过很多帖子:
- Shutdown script not executing on a Google Cloud VM
- Reliably executing shutdown scripts in Google Compute Engine
- Pro Tip: Use Shutdown Script Detect Preemption on GCP
当然也包括官方文档:
我想尝试设置powerbtn.sh,但我在GCP Ubuntu 16.04 LTS 中找不到/etc/acpi/
我找不到更多时间表,有什么想法吗?
【问题讨论】:
-
您可以尝试将您的文件写入
f=open("/tmp/python_out.txt",'w',encoding='utf-8')吗?并告诉我它是否有效。如果是这样,我会解释你的问题 -
@guillaumeblaquiere 太棒了!在我修改启动脚本并启动它之后,
tmp/python_out.txt存在,但它只打印到print(OK1)i.imgur.com/4zoNJg7.png i.imgur.com/48wACEf.png i.imgur.com/WH9X9Fm.png 但我很确定我的环境是正确的。当我在实例连接中输入/usr/bin/python3.7 telegram_notification.py时,它可以通过电报通知我,telegram_notification.py的内容与启动脚本相同
标签: python google-cloud-platform virtual-machine google-compute-engine shutdown-script