我现在正尝试在 Ubuntu 16.04 中部署我的 Phoenix(Elixir) 应用程序。为了持久性,我在 /lib/systemd/system 中使用了这个文件 (app.service)。
[Unit]
Description=Runner for My Phoenix App
[Service]
WorkingDirectory=/app
Environment=MIX_ENV=prod PORT=4000
ExecStart=/app/bin/app start
ExecStop=/app/bin/app stop
User=mohideen
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
我的用户名是mohideen
,并且该帐户具有 sudo 权限。当我尝试使用命令时sudo systemctl start app.service
,命令失败并显示以下错误:
Failed to start app.service: Unknown unit: app.service
See system logs and 'systemctl status app.service' for details.
当我输入时sudo systemctl status app.service
,我收到以下消息:
Failed to get properties: No such interface ''
当我手动启动应用程序时,它运行正常。为什么我会收到此错误?如何确保我的应用程序在重新启动和崩溃时重新启动?
答案1
我的问题有两个原因。
首先,我的.service
文件位置错误。应该是/etc
而不是/lib
。
其次,upstart
我之前安装了。这会阻止.service
文件运行(我不知道为什么)。一旦我卸载upstart
并重新安装systemd
,问题就解决了!