是否可以在脚本中判断它是否在 GNU 屏幕中运行?

ccl*_*ark 10 gnu-screen

我们在远程服务器上有一个长时间运行的进程,该进程不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动工作的 ssh 会话可能会遇到许多其他挑战。

Screen 似乎是确保过程不被中断的完美方式。然而,依靠一个人总是记得启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否在屏幕内被调用?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行 screen。

Fal*_*mot 11

有一个环境变量。如果它在屏幕内运行,$TERM将是screen. 就是这么简单;做一个如果就可以了。例如,

if [ $TERM != 'screen' ]; then echo foo; else echo bar; fi
Run Code Online (Sandbox Code Playgroud)

在屏幕中时会回显条;foo 否则。

  • 如果用户配置了 256 色支持,它也可以是 `screen-256color`。 (2认同)

Mag*_*lan 7

在使用 screen 时,为什么不使用“nohup”运行脚本?这也将确保它在您断开连接时继续运行。

它默认输出到文件,因此您可以根据需要使用其他工具来监视脚本输出。