我开发了一个Netty应用程序,允许通过各种设备通过TCP进行连接。但是,我不完全确定部署应用程序以供生产使用的最佳方式是什么。现在,我将其打包到一个JAR文件中,并在目标服务器上运行屏幕会话,如下所示:
screen -S Nettyjava -jar Server-Netty.jar
这是部署它的推荐方法还是屏幕是最好的选择?
发布于 2018-10-07 03:14:52
screen
不是在生产中运行服务的合适工具。如果系统必须重新启动,则必须手动重新启动服务。在大多数当前的linux发行版中,您可以使用系统服务单元文件来处理这个问题。这允许您定义工作目录、用户、运行的命令.下面是Unix & Linux StackExchange问题用systemd配置java守护进程中的一个示例
[Unit]
Description=Some job
After=network.target
[Service]
WorkingDirectory=/home/user/tmp/testout
SyslogIdentifier=SocketTest
ExecStart=/bin/sh -c "exec java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar"
User=dlt
Type=simple
[Install]
WantedBy=multi-user.target
一个好的实践是创建一个运行服务的特定用户,并限制他在文件系统上的权限。
https://stackoverflow.com/questions/52687740
复制