1

authbind用来允许我的 Play Framework 应用程序在以非 root 用户身份运行时绑定到端口 80。

我的目标/启动脚本需要看起来像这样才能工作:

#!/usr/bin/env sh

exec authbind --deep java $@ -cp "`dirname $0`/staged/*" play.core.server.NettyServer `dirname $0`/..

目前我正在手动修改这个生成的文件(呃!)。我找不到一种优雅的方式来在 java 命令之前play stage自动插入。authbind --deep

这个target/start脚本是从一个 Upstart 脚本启动的,我试过把authbind --deep它放在那里,但这似乎不起作用。

任何想法将不胜感激。

4

1 回答 1

1

调整您的项目/Build.scala 文件:

lazy val main = play.Project(appName, appVersion, appDependencies).settings(
    playStage <<= (playStage, baseDirectory) map {(stageCommand, baseDir) =>
      val content = """#!/usr/bin/env sh
                      |
                      |exec authbind --deep java $@ -cp "`dirname $0`/staged/*" play.core.server.NettyServer `dirname $0`/..""".stripMargin
      IO.write(baseDir / "target" / "start", content)
      stageCommand
    }
  )

这将覆盖播放阶段任务并编写自定义启动脚本文件。

于 2013-04-21T08:10:17.203 回答