我们在远程服务器上有一个长时间运行的进程,它会不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动作业的 ssh 会话可能会遇到一大堆其他挑战。
屏幕似乎是确保流程不被中断的完美方式。然而,依靠一个人总是记住启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否是从屏幕内调用的?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行屏幕。
我们在远程服务器上有一个长时间运行的进程,它会不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动作业的 ssh 会话可能会遇到一大堆其他挑战。
屏幕似乎是确保流程不被中断的完美方式。然而,依靠一个人总是记住启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否是从屏幕内调用的?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行屏幕。
有一个环境变量。如果它在屏幕内运行,
$TERM
将是screen
. 就这么简单;只是做一个如果就可以了。例如,在屏幕上时会回显条;foo 否则。
在使用屏幕时,为什么不使用“nohup”运行脚本?这也将确保它在您断开连接时继续运行。
它默认输出到一个文件,因此您可以根据需要使用其他工具来监视脚本输出。