Я большой поклонник "экрана" программы linux, который позволяет мне запускать экран во время сеанса SSH, который может остаться в живых после моего отключения. Больше информации об экране здесь

Есть ли способ запустить сеанс экрана из командной строки, которая автоматически запускает другую программу (или сценарий .sh) в этом сеансе экрана?

Я хотел бы добавить это к последовательности загрузки моего raspberry pi, чтобы всегда был экран, на котором автоматически запускается какое-то программное обеспечение, даже если pi перезапускается, так что я могу в любой момент войти в pi через ssh, чтобы увидеть вывод этого программного обеспечения.

Я посмотрел на это решение, но это помогает только частично. Это начинает экран, как это

screen -t "df" watch -n 10 df

и успешно запускает команду "df".

Однако, когда программа завершена, экран закрывается и исчезает.

Я бы хотел, чтобы экран оставался в живых, даже если изначально запущенная программа завершена.

2 ответа2

1

Измените команду на:

screen -t "df" bash -c 'watch -n 10 df; exec bash'

bash -c : используйте bash -c для запуска нескольких команд.

exec bash : после завершения команды df она запустит оболочку (bash), которая не выйдет, пока что-то внешнее не завершит ее.

0

Это можно сделать, выполнив команды в оболочке, которая продолжает выполняться после ее завершения.

Например, в окне «Запретить завершение сеанса на экране GNU после завершения выполненного сценария» принятый ответ

exec bash

после команды, чтобы запустить оболочку, когда команда завершится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .