如何用单行Bash命令实现创建Screen、执行命令并分离?
解决单行Bash命令创建Screen会话并启动Python服务的问题
没问题,我来帮你搞定这个!你之前遇到的问题,本质是没有正确把python myserver.py命令传递给Screen会话去执行——直接拼接的话,Shell会把命令拆成两部分,导致Python脚本不在Screen环境里运行。
这里给你一个完美的单行解决方案:
screen -dmS my_server_session python myserver.py
让我拆解开每个参数的作用,方便你理解和调整:
-d:告诉Screen在启动会话后立刻分离,不用手动按Ctrl+A+D-m:强制创建一个新的会话(即使当前已经有活跃的Screen会话,也不会影响)-S my_server_session:给你的会话起一个好记的名字,后续可以用screen -r my_server_session快速重新连接到这个会话- 最后跟着的
python myserver.py就是要在Screen会话内部执行的命令
如果你的myserver.py不在当前工作目录,记得换成绝对路径,比如:
screen -dmS my_server_session python /home/your_user/projects/server/myserver.py
验证是否成功的方法:
- 运行
screen -ls,你会看到刚才创建的my_server_session会话处于Detached状态 - 想要查看服务运行情况的话,用
screen -r my_server_session重新连接,按Ctrl+A+D可以再次分离
内容的提问来源于stack exchange,提问作者Basj
相关产品推荐
相关产品推荐

