在Compute Engine上完成启动脚本后,保持屏幕处于活动状态

时间:2019-02-06 12:23:29

标签: bash google-cloud-platform ubuntu-16.04 google-compute-engine startupscript

我正在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"

1 个答案:

答案 0 :(得分:0)

screen中的进程完成后会自动关闭。要使其保持打开状态,您需要一个活动的进程。如果您正在其中运行的进程由于某种原因而结束,则可以通过在过程结束时启动交互式外壳程序来使screen忙起来,例如:

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

bash停止运行后,此操作将开始bitcored,而bash停止后将关闭屏幕,这在正常情况下只能手动进行。