全部,
我已成功在 DigitalOcean Ubuntu MEAN Stack droplet 上安装了 ServiceStack 控制台应用程序,并且可以使用 mono 从命令行运行它。执行此操作后,我可以使用笔记本电脑上的 Postman 访问我的应用程序。
我也尝试过使用 Upstart 将我的应用程序作为守护进程运行。我可以从日志中看到它在我重新启动时成功启动,但除非我以 root 身份登录并从命令行启动我的控制台应用程序,否则在作为守护进程运行时我无法从外部访问控制台应用程序。我尝试过启用 ufw(配置为允许我正在使用的端口)和禁用 ufw,但没有任何区别。我可以在 syslog 和 GeoAPIConsole.log 中看到控制台应用程序在端口 1337 上触发并启动,但我仍然无法从外部访问它。
我确信这是我的控制台应用程序的 upstart 配置文件中的权限问题,但由于我是 Linux 新手,我不清楚下一步该如何让这个控制台应用程序作为守护进程使用。
非常感谢任何帮助...
布鲁斯
# ServiceStack GeoAPIConsole Application
# description “GeoAPIConsole”
# author “Bruce Parr”
setuid root
# start on started rc
start on started networking
stop on stopping rc
respawn
exec start-stop-daemon --start --exec /usr/bin/mono /var/console/GeoAPIConsole.exe
答案1
这有效。我添加了用户 geoapiconsole,并添加了 -S 和 -c 开关
# ServiceStack Example Application
description "ServiceStack Example"
author "ServiceStack"
start on started rc
stop on stopping rc
respawn
exec start-stop-daemon -S -c geoapiconsole --exec /usr/bin/mono /var/console/GeoAPIConsole.exe