玩框架Ubuntu Rogue进程

时间:2015-10-29 13:52:24

标签: scala ubuntu playframework sbt sbt-native-packager

我已使用sbt-native-packager Debian Plugin打包了我的Play应用程序。我使用典型的.deb安装了sudo dpkg -i tyrion_1.0-SNAPSHOT_all.deb文件。完成后,它创建了守护程序用户和组,并按照以下步骤启动了该过程:

aczerwon@vps57610:~/work/tyrion/target$ sudo dpkg -i tyrion_1.0-SNAPSHOT_all.deb 
Selecting previously unselected package tyrion.
(Reading database ... 53135 files and directories currently installed.)
Preparing to unpack tyrion_1.0-SNAPSHOT_all.deb ...
Unpacking tyrion (1.0-SNAPSHOT) ...
Setting up tyrion (1.0-SNAPSHOT) ...
Creating system group: tyrion
Creating system user: tyrion in tyrion with tyrion user-daemon and shell /bin/false
tyrion start/running, process 30525
Processing triggers for ureadahead (0.100.0-16) ...

我看到一个java进程以50%运行 - 这很疯狂,因为应用程序应该处于空闲状态。我假设它使用的是application.conf配置,但是当我尝试访问该网站时,我得到ERR_CONNECTION_REFUSED

流程正在启动和停止

观察top,我现在看到CPU已被固定,因为该过程正在开始并且一次又一次地死亡。 pid正在发生变化,VisualVM无法看到它 - 它未被列出。

1 个答案:

答案 0 :(得分:0)

ERR_CONNECTION_REFUSED错误可能是因为错过了游戏配置。请参阅sbt-native-packager docsplay pid configuration

配置示例

javaOptions in Universal ++= Seq(
  // Since play uses separate pidfile we have to provide it with a proper path
  s"-Dpidfile.path=/var/run/${packageName.value}/play.pid",

  // setting the http port explicitly
  "-Dhttp.port=9000"
)

对于高CPU利用率,我建议使用VisualVM或MissionControl分析应用程序,看看发生了什么。

更新

对于播放应用程序,PID文件必须命名为play.pid,否则播放无法启动。