【发布时间】: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