Google Compute Engine - 使用启动脚本启动 tmux

2024-03-08

我试图在启动过程中使用元数据键“startup-script”启动 tmux。我正在尝试执行tmux new-session -d -s toto在启动期间,但是当我执行tmux ls之后我没有看到任何 tmux 会话。

我在这里缺少什么?


您可能会忽略一些先决条件:

  1. 该程序应安装在映像上。标准映像安装了最少的程序集。

  2. 每次启动实例时都会运行启动脚本,其运行方式为root。所以如果你只是跑tmux直接从启动脚本开始,它将启动一个新的tmux会话但作为 root 用户。这不是您最想要的。

话虽如此,这会起作用(我已经给出了使用的例子gcloud但您也可以将类似的逻辑应用于 REST API 或 Cloud Console):

所有这些都可以使用此启动脚本来完成:

(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto

如果尚未安装,上面的命令将安装 tmux,然后启动一个名为的新分离 tmux 会话toto.

您可以在创建实例时设置此启动脚本:

gcloud compute instances create VM_NAME --metadata 'startup-script=(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto' --zone ZONE_NAME --project PROJECT_NAME

或稍后随时更新现有虚拟机的元数据:

gcloud compute instances add-metadata vm-1 --metadata 'startup-script=(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto' --zone ZONE_NAME --project PROJECT_NAME

你总是可以重新运行启动脚本 https://cloud.google.com/compute/docs/startupscript#rerunthescript在虚拟机上(无需重新启动虚拟机):

$ sudo google_metadata_script_runner --script-type startup

有关的完整文档启动脚本 https://cloud.google.com/compute/docs/startupscript可以在这里找到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Compute Engine - 使用启动脚本启动 tmux 的相关文章

随机推荐