【问题标题】:play activator debian:get-changes package successfully installs but does not runplay activator debian:get-changes 包安装成功但不运行
【发布时间】:2017-02-14 11:37:47
【问题描述】:

我构建了一个基本的应用程序,没什么特别的,activator debian:gen-changes 给了我一个很好的 debian 包,可以很好地安装。

当我通过/user/share/myapp/bin/myapp(也软链接到/usr/bin/myapp)手动运行它时,应用程序启动并且播放日志出现在控制台和/var/log/myapp.log 中每个我的logback。 xml 文件。

这一切都很好,除了 sudo service myapp start 没有做任何事情。它不启动我的应用程序(netstat -an | grep 9000)不返回任何内容,也没有日志。

我该如何解决这个问题?我查看了 /etc/init.d/myapp 文件并尝试调试但没有提出任何建议。没有显示错误消息,echo $? 返回 0。

即使我确实在 init.d 中修复了问题,我也很担心,如何将修复程序放入 activator debian:gen-changes 命令中。 debian 的创建都是为我处理的。它为我创建了 init.d 和 /etc/default/myapp 文件。

有人搞定这个吗?如何对 init.d 进行故障排除?我试图复制

start-stop-daemon --background --chdir /usr/share/voldemort --chuid "$DAEMON_USER" --make-pidfile --pidfile "$PIDFILE" --startas "$RUN_CMD" --start -- $RUN_OPTS

...命令进入我的控制台,但我收到权限错误。

【问题讨论】:

  • 啊解决了!我发布了这个问题,所以我可以回答它。问题是除了 init.d 脚本之外,play 还尝试创建自己的 PID 文件。并且由于我的应用程序安装到/usr/share/myapp 并归根用户所有(因为我做了sudo dpkg -i),所以我的应用程序用户和组没有权限在那里写入 pid 文件(播放默认为在执行上下文所在的位置创建 pid 文件)。我通过在我的 application.conf 中添加 pidfile.path 解决了这个问题,请参阅(生产配置)[playframework.com/documentation/2.5.x/ProductionConfiguration]

标签: scala playframework debian init.d


【解决方案1】:

为 play 添加一个不同的路径以通过 application.conf 写入其冗余 pid 文件:pidfile.path 所以它不是安装位置 (/usr/share//bin/)

我将我的设置为/dev/null,因为我不需要多余的 pid。

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 2017-07-17
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2017-11-19
    相关资源
    最近更新 更多