我想编辑我的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 扩展名)