启动时通过脚本运行 Web 服务器

启动时通过脚本运行 Web 服务器

我有一个美洲豹网络服务器运行我的潇洒Linux VM 上的仪表板。目前,VM 会在我的 PC 启动时立即启动,但我必须手动运行服务器。

我通常在 ssh 登录后执行以下操作;

screen -S dashing
cd dashboard
sudo bundle exec puma
Ctrl + a + d

我尝试将其转换为 bash 脚本,但它似乎无法在屏幕会话中执行第 2 - 4 行,我不知道如何让它工作。我甚至不确定这是否是让 puma 在启动时运行的最佳方法(如果/etc/rc.local我能让它工作的话,我打算将 bash 脚本包含在内)。

答案1

除了最新版本的 ubuntu 外,大多数版本都使用 upstart,这似乎是一个很好的解决方案。我对 systemd 不太熟悉,如果您的构建使用它,您可能需要一个完全不同的版本。这就是发行版和版本很重要的原因。

似乎是一个好的开始 - 你应该读一下。我会做些不同的事情,为了发布一个独立的答案,我在写的时候附上了一个脚本。我建议看看这两个,以及新贵文档调整它以更好地满足您的需求。我注意到您以 root 身份运行它 - 您确实应该以特定用户身份执行此操作。我做了一些对我来说有意义的更改 - 如果您确定这有效,您可能希望将控制台日志更改为控制台无,并且我设置了明确的启动和停止命令。这假设您有一个名为仪表板的用户 - 您可以省略 setuid 和 setguid 命令。

没有真正测试过,但它本身是有道理的。将其放入/etc/init/dashing.conf

respawn
console log
start on runlevel [23]
stop on [!23]

setuid dashboard
setgid dashboard

script
  chdir /home/dashboard/dashboard/
  dashing start
end script

相关内容