Сохранять экран активным после завершения сценария запуска в 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"

person Roie Beck    schedule 06.02.2019    source источник
comment
Вы ожидаете, что экран продолжит работать после завершения процесса, который вы запускаете на экране, верно? Или этот процесс должен продолжаться?   -  person jvdmr    schedule 06.02.2019


Ответы (1)


screen автоматически закрывается, когда процесс внутри него завершается. Чтобы держать его открытым, вам нужен активный процесс внутри. Если процесс, который вы в нем запускаете, завершается по какой-либо причине, вы можете оставить screen занятым, запустив интерактивную оболочку в конце процесса, например:

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

Это запустит bash, как только bitcored перестанет работать, и закроет экран, как только bash остановится, что в обычных обстоятельствах происходит только вручную.

person jvdmr    schedule 06.02.2019
comment
Я понимаю, но биткорд не останавливается, это полноценный сервер, он не перестает работать... - person Roie Beck; 06.02.2019
comment
Пишет ли bitcored какие-либо журналы? Выполняется ли этот скрипт от имени учетной записи пользователя с правами для запуска bitcored? Находится ли bitcored в переменной $PATH, которую предоставляет screen (примечание: обычно это НЕ тот же $PATH, что и в стандартной оболочке)? Возможно, лучше указать полный путь к bitcored (например, /usr/bin/bitcored или где бы он ни находился). - person jvdmr; 06.02.2019
comment
Привет @jvdmr, после просмотра журналов ошибка: биткорд: не найден, я пытался использовать полный путь, но все равно не смог выполнить команду во время запуска, только когда SSH на машине я могу запустить биткорд процесс.. это действительно круто - person Roie Beck; 13.02.2019