Linux‘screen’命令——启动一个屏幕并同时在其中运行某些内容?

Linux‘screen’命令——启动一个屏幕并同时在其中运行某些内容?

我非常喜欢 Linux 程序“screen”,它允许我在 SSH 会话中启动一个屏幕,并且在我断开连接后该屏幕仍能保持活动状态。点击此处了解有关屏幕的更多信息

有没有办法可以从命令行启动屏幕会话,并在该屏幕会话中自动启动另一个程序(或 .sh 脚本)?

我想将其添加到我的树莓派的启动序列中,这样即使树莓派重新启动,也总会有一个屏幕自动运行某些软件,这样我就可以随时通过 ssh 进入树莓派查看该软件的输出。

我看过此解决方案,但这只能起到部分作用。它启动屏幕如下

screen -t "df" watch -n 10 df

并成功启动“df”命令。

然而,当程序运行完毕后,屏幕就会关闭并消失。

我希望即使最初启动的程序已经结束,屏幕仍然能够保持活动状态。

答案1

将命令更改为:

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

bash -c: 使用bash -c运行多个命令。

exec bash: 后自由度命令终止,它将启动一个 shell(bash),直到外部某些东西终止它才会退出。

答案2

您可以通过在命令完成后仍保持运行的 shell 中运行命令来执行此操作。

例如,在防止 GNU screen 在执行脚本结束后终止会话,接受的答案

exec bash

在命令之后,当命令完成时启动 shell。

相关内容