我有一个在前台运行的程序,所以我通过“屏幕”运行它。有没有适合“屏幕”的启动/停止/重启模板?我需要它将命令传递给屏幕,如果屏幕不存在,则创建它。
答案1
我觉得你有点困惑。
screen 所做的只是让你将它从当前终端分离,并在稍后重新连接。
但是,您可以启动屏幕内分离的进程。
screen -d -m your_command_here
答案2
我不确定您所说的“屏幕模板”是什么意思,但该-R
选项的意思是“将我连接到现有屏幕或启动新屏幕”。要有用,您需要类似 的东西screen -d -R -S myscreen
。如果它已经连接到其他地方,-d 选项将分离它,而“-S myscreen”将命名您的屏幕会话,以便将来的screen -d -R -S myscreen
命令知道您正在谈论哪个屏幕。
不幸的是,-d -R -S 不能与 -d -m 一起使用,因此您不能说“以分离模式启动名为 myscreen 的屏幕,除非已经有一个名为 myscreen 的屏幕”。一旦启动,如果您不想让它在前台运行,则必须使用 ctrl-a ctrl-d 命令将其分离。
选项之后的任何内容都将仅在新屏幕中作为命令执行,因此您可以执行screen -d -R -S myscreen /some/program
:
1)如果存在名为 myscreen 的屏幕,则将其从当前位置分离并在此处重新连接
2)如果屏幕不存在,则创建它并/some/program
在其中执行。
请注意,如果您在屏幕中运行命令,则当该命令退出时,屏幕也会退出。