首页 > 解决方案 > 在 Compute Engine 上完成启动脚本后保持屏幕活动

问题描述

我在 Compute Engine 上运行启动脚本,env 是 Ubuntu 16.04 ,该脚本正在运行一个屏幕,然后在屏幕内运行一个进程。

所有回波线都打印到串行端口 1 屏幕上。

问题是当我通过 SSH 连接到机器时,没有运行屏幕。

我测试了每条线以确保它们正常工作。

有人可以帮我理解这个问题吗?

剧本:

#! /bin/bash
echo "going to sleep"
echo "starting bitcored"
screen -d -m -S testScreen 'bitcored'
echo "bitcored started"

标签: bashgoogle-cloud-platformubuntu-16.04google-compute-enginestartupscript

解决方案


当Ascreen内部的进程完成时,它会自动关闭。为了让它保持打开状态,你需要一个内部的活动进程。如果您正在其中运行的进程因任何原因完成,您可以screen通过在进程结束时启动交互式 shell 来保持忙碌,例如:

screen -d -m -S testScreen "bitcored ; exec bash"

这将bashbitcored停止运行时启动,并在停止时关闭屏幕bash,通常情况下只能手动执行。


推荐阅读