如何使用SBT以系统用户身份运行Scala应用

问题描述

我正在使用sbt开发一个应用程序。我想在/ var / lib / $ appname中存储一些文件。我已经创建了系统组和系统用户

groupadd -r $appname

useradd -M -r --home /var/lib/$appname --shell /sbin/nologin --gid $appname $appname

现在,我需要我的代码以该用户身份运行,但是我不确定如何运行。我在应用中执行了whoami,并看到它以登录用户的身份运行。

如何配置sbt以该系统用户身份运行该应用程序?

解决方法

有不同的方法来做到这一点。一种方法是使用sbt-native-packager插件为您的发行版生成一个软件包,然后使用发行版的软件包管理器进行安装。您可以使用“ Java服务器应用程序”原型和daemonUser设置来配置用户。 sbt-native-packager还将通过生成systemd或upstart配置文件和/或init脚本与您的init系统集成。