如何在启动时使用命令创建屏幕会话,该命令在命令完成时不会结束

如何在启动时使用命令创建屏幕会话,该命令在命令完成时不会结束

我想编辑我的rc.本地文件启动几个服务器会话,每个会话都在其自己的 GNU 屏幕中。但是,每当我停止服务器时,屏幕就会终止。

目前我有:

screen -dmS test ~/tmp/runserver.sh

里面有这个运行服务器

node ~/dev/mouser/app.js

传递的命令或脚本终止后,如何让屏幕保持活动状态?

答案1

两种方式。要么调用 shell 来运行脚本,然后exec在脚本完成后用交互式 shell 替换自身(使用内置命令)

screen -dmS test bash -c '~/tmp/runserver.sh; exec bash'

或者保留当前屏幕命令并将 exec bash 放入 runserver.sh 脚本中。

#!/bin/bash
node ~/dev/mouser/app.js
exec bash

(附注:脚本扩展毫无意义。如果你用另一种语言重写它,它只会给你带来依赖性问题。如果你查看 /bin 和 /usr/bin,你会发现很多 sh、bash 和 python 脚本;其中没有一个具有 .sh、.bash 或 .py 扩展名)

相关内容