linux - 如何支持多个 server.pid 文件?

标签 linux playframework init.d

我正在数据中心的多台机器上运行游戏。我们对所有事情进行负载平衡。在每个 Play 节点/VM 上,我使用 Apache 和 init.d/play 脚本来启动和停止 Play 服务。

问题是我们的游戏网站托管在共享网络存储上。这使得部署非常好,您部署到一个地方,网站就会在所有 100 台计算机上更新。每台计算机都有一个映射文件夹“/z/www/PlayApp1”,其中包含 Play 应用程序。

问题是,当服务启动或停止时,server.pid 文件会被写入应用程序文件所在的网络位置。

问题是,当我启动 100 个节点时,第 100 个节点将用它的 pid 覆盖 PID 文件,现在 pid 文件仅代表 100 个节点中的 1 个节点的正确进程 ID。

那么我如何才能将 pid 文件存储在本地而不是与网络共享上的应用程序文件一起存储呢?我需要每个服务器的 PID 文件来反射(reflect)该机器的实际进程。

我们正在使用 CentOS (Linux)

提前致谢 乔什

最佳答案

根据https://github.com/playframework/play/pull/43看起来有一个 --pid_file 命令行选项;它可能只适用于应用程序根目录下的路径,因此您可能必须为每个不同的主机创建目录(可能是符号链接(symbolic link))

我的 Play 经验为 0,因此希望这是有用的信息。

关于linux - 如何支持多个 server.pid 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919292/

相关文章:

php - 安装tomcat 8后Nginx 502 Bad Gateway错误

java Linux服务器: class not found exception though jar in classpath

json - Play Framework : How to sort JSON alphabetically

linux - Cron Job 在 Linux 环境下不工作

c - 阻塞 pcap 和多个 I/O `select `

json - Play Framework : Request_denied when getting json from googlemap url

javascript - 如何使用动态生成的列表中的按钮更改文本?

mysql - 在 Ubuntu 上向 init.d 添加服务

java - 使用 init.d 运行 SpringBoot Jar 时出错

linux - 由 init.d 启动的保持事件进程的标准或最佳方式