【问题标题】:Play change RUNNING_PID file path播放更改RUNNING_PID文件路径
【发布时间】:2016-05-11 00:08:27
【问题描述】:

我正在尝试将 RUNNING_PID 文件存储在 /var/run 而不是根目录。 尝试了以下建议的所有选项: Another SO question about the subject

解决方案在他们的文档中建议:Play additional configuration

然而,当我启动我的应用程序时,RUNNING_PID 文件会在根目录中创建,而 /var/run/play.pid 保持为空

【问题讨论】:

  • 你将不得不获得更多信息..刚刚尝试了播放附加配置中给出的方法,它工作正常。我正在使用 play 2.3.9
  • play应用是否有权限写入该目录?
  • 是的,它拥有所有需要的权限。我终于找到了问题,按照播放文档中的建议进行了修复:“java -Dpidfile.path=/var/run/play.pid -javaagent:newrelic/newrelic.jar -Dnewrelic.environment=${NEWRELIC_ENV} -jar /usr /local/webapp/my_app.jar”起初我是这样运行的:“java -javaagent:newrelic/newrelic.jar -Dnewrelic.environment=${NEWRELIC_ENV} -Dpidfile.path=/var/run/play.pid -jar /usr/local/webapp/my_app.jar" 这不起作用

标签: scala playframework docker playframework-2.0


【解决方案1】:

play.server.pidfile.path=/var/run/RUNNING_PID

在你的application.conf

【讨论】:

    【解决方案2】:

    在 Linux 中创建一个“播放”用户和组,以便它以安全的方式运行。

    在 SystemD 服务文件中,并在 [Service] 区域内使用:

    [Service]
    
    # Create the Directory /var/run/play (which Play will have write permissions to)
    RuntimeDirectory=play
    RuntimeDirectoryMode=0710
    
    User=play
    Group=play
    

    在ExecStart中,具体传递系统属性“pidfile.path”:

    ExecStart=/opt/play-1.0.0/bin/play -Dconfig.file=/path/to/my/application.conf \
                                       -Dpidfile.path=/var/run/play/play.pid
    

    【讨论】:

      【解决方案3】:

      以下在 Play 2.8 (??) 中为我工作:

      将此属性添加到 conf 目录中的 application.conf:

      play.server.pidfile.path=/var/run/RUNNING_PID

      注意: 它将尝试在 /var/run 下创建一个文件,如果您不想/无权写入文件系统,即您正在运行您的应用程序Kubernetes (1.20) pod 将其更改为 /dev/null。

      play.server.pidfile.path=/dev/null

      希望这会有所帮助,干杯 (??)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        • 2016-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多