退出SCREEN会话不会结束正在运行的程序

问题描述 投票:0回答:1

我有一个简单的脚本试图杀死正在运行的屏幕会话,等待5秒,然后重新启动它。试图把它放在一个cron工作上,但有一个奇怪的问题。这是脚本:

#!/bin/bash
screen -S test -X quit
sleep 5
screen -dmS text node test.js

因此,第一次运行它时,会出现“No session named test”错误......没关系。然后它以分离模式启动会话并运行节点脚本。

下次脚本运行时,它会找到会话,发出quit命令,如果运行'screen -ls',则不会列出会话。

但是程序仍在运行......但是,如果你打开浏览器然后点击网站,那么进程就会死掉,你会收到一条错误,表示该服务不再运行...所以网络服务器在会话结束后仍然运行已退出,只有当您尝试通过Web浏览器访问它时才会死亡。

我在Mac OS X 10.9.5(Mavericks)上测试所有这些

我刚接触屏幕并且正在使用它,因为我需要能够连接到远程服务器并通过控制台监视/管理脚本。

我已尝试以下方法向屏幕会话发出Ctrl-C命令以退出程序,但没有运气:

screen -S text -X stuff "^C"

我需要能够确保节点脚本在会话结束时退出运行。任何方向将不胜感激。谢谢!

node.js bash gnu-screen
1个回答
0
投票

事实证明,原始脚本在服务器(CentOS 6)上工作得很好。我确实使用你的建议只是杀死进程并重新启动它,但客户端需要会话被杀死(无论出于何种原因插入....)谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.