Monitoring 用sudo启动God节点
我需要以root用户身份(使用sudo)启动Node.js服务器,启动参数如下:Monitoring 用sudo启动God节点,monitoring,node.js,god,Monitoring,Node.js,God,我需要以root用户身份(使用sudo)启动Node.js服务器,启动参数如下: w.start = "sudo node #{KTHXBYE_NODE_ROOT}/poll.js" 因为我使用的是Socket.IO,需要使用flashsockets(这要求Node.js以root身份运行) 然而,每当我启动God时,它都无法启动节点。我试着用sudo运行God,没有sudo,就像rvmsudo(因为我在我的机器上使用RVM来管理ruby版本),但似乎没有任何东西可以修复它。有人知道一种在上帝
w.start = "sudo node #{KTHXBYE_NODE_ROOT}/poll.js"
因为我使用的是Socket.IO,需要使用flashsockets(这要求Node.js以root身份运行)
然而,每当我启动God时,它都无法启动节点。我试着用sudo
运行God,没有sudo
,就像rvmsudo
(因为我在我的机器上使用RVM来管理ruby版本),但似乎没有任何东西可以修复它。有人知道一种在上帝里用sudo
运行进程的方法吗
谢谢。这是我运行带有“god”的node.js服务器的最小配置文件: 如果尚未启动node.js,它会自动启动node.js,并使用内部“god”守护方式 确保您的配置中有“start_if”部分,该部分定义了启动受监控流程的条件。在这里,我们有一个条件,如果进程没有运行,就启动它,这正是我们所需要的 关于“sudo”特权:我认为没有必要在god-config“start”命令中包含sudo。您可能更愿意使用sudo“god”本身进行调用,然后它也将使用sudo运行受监视的进程。例如,我正在使用以下命令测试“god”配置:
sudo god -c conf/chapayev.god -D
(-D用于在控制台中打印输出,以立即查看所有配置错误)
有关更多详细信息,请查看此帖子:
使用web服务器(例如nginx)来管理flash套接字策略文件不是更好吗
server {
listen 843;
server_name {{ SERVER_NAME }} www.{{ SERVER_NAME }};
location / {
root {{ PATH_TO_FOLDER_WITH_crossdomain.xml_FILE }};
autoindex off;
}
}
和crossdomain.xml文件(用适当的值替换*):
这样节点就不必用sudo启动。在我看来,这更容易,也更安全。当以root用户身份运行时,节点创建的文件所有权也可能存在问题
若节点是以根用户身份启动的,那个么最好在端口绑定后对其进行chroot或更改UID :“上帝目前只在Linux、BSD和达尔文系统上工作。”这些项目名称让我感到非常悲痛。
server {
listen 843;
server_name {{ SERVER_NAME }} www.{{ SERVER_NAME }};
location / {
root {{ PATH_TO_FOLDER_WITH_crossdomain.xml_FILE }};
autoindex off;
}
}
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>