这里已经有很多这样的问题了,但是每个人都推荐(以下的解决方案)以下解决方案:
原文链接:https://www.f2er.com/bash/385699.htmlscreen -dmS somename bash -c "/path/to/script; bash -l"
例如当脚本结束时,运行一个新的bash.
不幸的是,这对我不起作用,因为
>该脚本使用$BASHPID变量
>脚本运行永远运行,例如需要用CTRL-C终止它
>并且终止后我必须拥有与运行脚本相同的shell(相同的$BASHPID)
所以,问题是:
>如何以分离模式启动屏幕(例如,在启动时) – 通常由-dm完成
>它必须启动shell
>最好,如果它可以作为“登录”shell启动,例如什么读取我的.profile,但这可以通过脚本本身的源〜/ .profile来克服
>脚本启动一些其他(二进制)程序将运行到CTRL-C
>并且在脚本终止之后我必须获得相同的bash(使用相同的$BASHPID(因为需要运行另一个脚本,这取决于它)
总之需要模拟以下互动工作:
>开始屏幕
> echo $BASHPID
>在屏幕内运行一些命令(最后一个命令运行直到CTRL-C) – 例如运行/ path / to / script
>分离(ctrl-a d)
经过上述,以后,我可以做到
>重新连接(屏幕-ARR)
> CTRL-C
>并且可以继续…同样的
> echo $BASHPID #will产生与上面相同的内容
任何的想法? (考虑-X但它不起作用,某处我可能犯了错误)