创建一个屏幕,在其中启动命令并分离

创建一个屏幕,在其中启动命令并分离

我想要执行一行 bash 命令来自动执行此操作:

screen -S myserver 
python myserver.py  # inside the new screen
CTRL A, D (detach)

我认为这行不通:

screen -S myserver && python myserver.py

因为python myserver.py不会启动里面screen

答案1

您可以在启动程序后立即分离里面屏幕:

screen -dmS myserver python myserver.py

screen 的手册页

-d-m 以分离模式启动屏幕。这会创建一个新会话,但不会附加到它。这对于系统启动脚本很有用。

答案2

@Stefan M 的答案很好,但不太像在屏幕内运行命令,因为当命令结束时,整个屏幕也会结束。如果您实际上在屏幕中运行命令,那么当它退出时,您将留下一个 shell。

您可以使用以下命令保留该外壳:

screen -s "/bin/bash" -dmS myserver; screen -S myserver -X stuff "python myserver.py\n"; 

这将首先使用 shell 启动屏幕,然后将一些命令发送到该 shell 中运行。这就像您自己在屏幕上输入这些命令一样。

此处提供了更详细的脚本:https://unix.stackexchange.com/a/766301/598166

相关内容