【问题标题】:Google Compute Engine: lost exported env after closing SSHGoogle Compute Engine:关闭 SSH 后丢失导出的环境
【发布时间】:2018-05-21 18:25:14
【问题描述】:

我在 Google 计算机引擎上有一个实例,并且我导出了运行 $ export my_token=my_token 的环境变量。一切都很好,它打印my_token running $ echo $my_token

但在关闭 ssh 连接并重新连接到我的实例后,我再次尝试运行 echo $my_token,它什么也没打印。因此我想我在关闭 ssh 后丢失了导出的环境变量。

  • 即使在 Google Compute Engine 实例上关闭 ssh 后,我如何才能保留我的环境变量?

【问题讨论】:

    标签: google-cloud-platform environment-variables google-compute-engine


    【解决方案1】:

    在 Compute Engine 实例上,它的工作方式与任何其他 Linux 或 Unix 实例完全一样,从操作系统的角度来看没有区别。

    说明

    • 设置环境变量仅适用于会话,它不是持久的,每次打开新的shell(例如更改用户或通过ssh连接)都会丢失之前设置的环境变量。李>

    解决方案

    要保留将在您启动的每个新 shell 中设置的环境变量的值,您可以将 export my_token=my_token 命令添加到 shell 的一个 init 文件中。 例如~/.profile~/.bashrc

    进一步参考

    【讨论】:

    • 好吧,因为我不想在 gce 的任何地方保存my_token,所以我使用命令而不是使用 bash 文件。那么,如果不将my_token 保存在文件中,我们可以有其他方法吗?在文件中保存令牌可能是一个安全问题。
    • 您可以将它放在一个文件中,该文件只能由您的用户访问,例如 .bashrc。考虑到 ssh 密钥保存在 ./ssh 文件夹中,这不被视为安全问题。如果您想存储某些内容并在重新启动后也将其永久保存,我可以看到仅将其存储到文件中作为选项
    • 因此我看不出它真的很有用,但是如果你出于任何原因想避免它:你可以“重新连接到断开连接的 ssh 会话”当你第一次登录时,运行 screen.你得到另一个shell,在其中运行命令。如果您断开连接,屏幕进程会保持终端处于活动状态,这样您的 shell 和它正在运行的进程就不会崩溃。重新连接后,运行“screen -r”恢复。
    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2021-01-06
    • 2020-03-03
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多