终端关闭时运行 Google Cloud Storage gsutil 命令

Posted

技术标签:

【中文标题】终端关闭时运行 Google Cloud Storage gsutil 命令【英文标题】:Run Google Cloud Storage gsutil command when terminal is closed 【发布时间】:2020-03-24 14:38:55 【问题描述】:

我正在删除 GS Storage 存储分区中的大量文件。我正在从 shell cmd 运行gsutil,例如:

gsutil -m rm -r gs://bucket-name/folder-name

我发现当shell会话结束或我关闭chrome时,命令被中断,即使&运行后台。即使会话结束也不会中断运行命令或脚本的任何想法?

谢谢

【问题讨论】:

怎么知道命令被中断了?您是否看到错误消息?您是在您的机器上运行它,还是在 Cloud Shell 中运行它? 我在 Cloud Shell 中运行 cmd,而不是在我的本地计算机上在线运行。我正在删除很多小文件,这将花费数小时。我运行了 cmd 后台,但几个小时后文件并未全部删除。所以我在想,当会话到期时,cmd会被中断。 【参考方案1】:

在后台使用& 运行命令并不能防止它在您注销或关闭 shell 时被杀死。要防止命令在分离时结束,请使用nohup 运行它。例如:

nohup gsutil -m rm -r gs://bucket-name/folder-name &

【讨论】:

是的,先生...请参阅以下内容...linux.101hacks.com/unix/nohup-command 高级是当终端断开连接时,从该终端启动的所有进程都会发送一个 SIGHUP(挂断),这将杀死命令。 nohup 命令将命令作为参数并禁用该命令的 SIGHUP 传递。

以上是关于终端关闭时运行 Google Cloud Storage gsutil 命令的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Run 一遍又一遍地错误运行

如何以root用户身份运行Google Chrome? [关闭]

Google Cloud Sql 连接关闭问题

Google Cloud Shell - 无法打开shell

如何以 root 身份运行 Google Chrome? [关闭]

在 Google Cloud Logs 中看不到应用程序日志