Sbt native packager Sbt Native Packager Debian安装使用根用户而不是守护程序用户

Sbt native packager Sbt Native Packager Debian安装使用根用户而不是守护程序用户,sbt-native-packager,Sbt Native Packager,我正在使用sbt本机打包程序(“com.typesafe.sbt”%“sbt本机打包程序”%“1.0.0”)为我的Scala Play 2.3.8应用程序创建一个debian包。正在生成的startscripts使用自定义用户来启动和停止完全符合预期的应用程序。 问题是,使用dpkg-i package.deb安装的应用程序似乎在以root用户身份安装后直接启动应用程序。然后,根用户拥有/var/run/neeedo app/running.pid,所有进一步的停止或启动尝试都失败,因为守护程序

我正在使用sbt本机打包程序(
“com.typesafe.sbt”%“sbt本机打包程序”%“1.0.0”
)为我的Scala Play 2.3.8应用程序创建一个debian包。正在生成的startscripts使用自定义用户来启动和停止完全符合预期的应用程序。 问题是,使用
dpkg-i package.deb安装的应用程序似乎在以root用户身份安装后直接启动应用程序。然后,根用户拥有
/var/run/neeedo app/running.pid
,所有进一步的停止或启动尝试都失败,因为守护程序用户无法覆盖此文件

这是我的build.sbt:

import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._
import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV

name := """neeedo-api"""

version := "1.0-SNAPSHOT"

scalaVersion := "2.11.1"

maintainer in Debian := "neeedo-team <neeedo@neeedo.com>"

packageSummary in Debian := "neeedo api application"

serverLoading in Debian := SystemV

packageDescription := "neeedo api application"

daemonUser in Linux := neeedo-api

daemonGroup in Linux := neeedo-api
导入com.typesafe.sbt.SbtNativePackager_
导入NativePackageKey_
导入com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV
名称:=“neeedo api”
版本:=“1.0-快照”
规模规避:=“2.11.1”
Debian中的维护人员:=“neeedo团队”
Debian中的packageSummary:=“neeedo api应用程序”
Debian中的服务器加载:=SystemV
packageDescription:=“neeedo api应用程序”
Linux中的daemonUser:=neeedo api
Linux中的daemonGroup:=neeedo api
我正在使用neeedo应用程序用户运行dpkg安装命令。我不明白为什么running.pid文件是在安装后由root用户创建的。如果我用sudo手动删除文件,并使用启动/停止脚本,一切正常

编辑(回答): 似乎以root用户身份启动应用程序(使用dpkg)并不是一个真正的问题。running.pid文件位于应用程序用户拥有的目录中。因此,它可以编辑和删除pid文件


我的应用程序在其配置中使用环境变量,当您以sudo作为root用户运行启动脚本时,您有不同的环境变量。这导致应用程序无法启动,不幸的是,没有看到错误报告(我必须进一步调查原因,因为通常情况下应该报告错误)。

是的,我做了。请参阅问题中编辑的部分…我遇到的问题是运行
sudo dpkg-I deb_pack
创建root拥有的dir,但是启动脚本
/etc/init/myproject.conf
以自定义用户身份运行服务,因此由于权限问题无法创建pid文件。有什么线索吗?/var/run/app_name目录应该属于daemonUser。也许您可以在这个github问题中找到一个解决方案:它由用户拥有,但它是空的。您采取了哪些步骤来创建/安装/运行deb包?