VPS 上的 Elixir 应用无法在守护进程模式下从 ssh 启动
Elixir app on VPS can't started from ssh on daemon mode
我已经使用 Phoenix + Elixir 构建了一个应用程序并将其部署到带有 distillery 的服务器。
一切正常,直到我尝试创建一些 bash 脚本来自动部署,仅供参考:我已经尝试过 edeliver,但它不符合我的需要。
当我登录 运行
并在我的 VPS 上尝试 运行 守护程序模式时,我总是成功
sudo my_app/bin/app start
但是,当我 运行 使用远程命令 ssh
ssh user@some_ip -C "sudo my_app/bin/app start"
启动失败,shell 屏幕上没有输出。它只是行不通。
但是,如果我 运行 在前台模式下
ssh user@some_ip -C "sudo my_app/bin/app foreground"
将成功启动应用程序并显示 运行ning 日志
我一直在尝试在前台模式下使用 nohup
,但它仍然显示 运行ning 日志,而我需要 运行 另一个命令
是否需要执行 运行 SSH 远程命令,可能设置了一些环境?
您 运行 sudo
时通常需要输入密码吗?如果是这样,那可能会导致 SSH 出现问题。您可以尝试 运行ning SSH 与 pseudotty 这样您就可以输入 sudo 密码,即 ssh -t user@some_ip -C "sudo my_app/bin/app start"
这闻起来像 XY problem。 运行 带有普通 bin/app start
的遥控器首先是一个非常糟糕的主意。应该使用 upstart
或 systemd
(或另一个进程调度程序)来确保应用程序启动并在启动后 运行。
正确设置后,您将执行类似
的操作
ssh user@some_ip -C "sudo systemctl start app"
您目前遇到的故障应该会消失。
我已经使用 Phoenix + Elixir 构建了一个应用程序并将其部署到带有 distillery 的服务器。 一切正常,直到我尝试创建一些 bash 脚本来自动部署,仅供参考:我已经尝试过 edeliver,但它不符合我的需要。 当我登录 运行
并在我的 VPS 上尝试 运行 守护程序模式时,我总是成功sudo my_app/bin/app start
但是,当我 运行 使用远程命令 ssh
ssh user@some_ip -C "sudo my_app/bin/app start"
启动失败,shell 屏幕上没有输出。它只是行不通。
但是,如果我 运行 在前台模式下
ssh user@some_ip -C "sudo my_app/bin/app foreground"
将成功启动应用程序并显示 运行ning 日志
我一直在尝试在前台模式下使用 nohup
,但它仍然显示 运行ning 日志,而我需要 运行 另一个命令
是否需要执行 运行 SSH 远程命令,可能设置了一些环境?
您 运行 sudo
时通常需要输入密码吗?如果是这样,那可能会导致 SSH 出现问题。您可以尝试 运行ning SSH 与 pseudotty 这样您就可以输入 sudo 密码,即 ssh -t user@some_ip -C "sudo my_app/bin/app start"
这闻起来像 XY problem。 运行 带有普通 bin/app start
的遥控器首先是一个非常糟糕的主意。应该使用 upstart
或 systemd
(或另一个进程调度程序)来确保应用程序启动并在启动后 运行。
正确设置后,您将执行类似
的操作ssh user@some_ip -C "sudo systemctl start app"
您目前遇到的故障应该会消失。