10

我正在使用 ruby​​ 企业版和独角兽作为应用服务器运行我的 rails 应用程序。我运行这个命令

bundle exec unicorn -D -c /home/ubuntu/apps/st/config/unicorn.rb

我需要在系统重新启动或启动后立即运行此命令。我在 ubuntu 10.04 LTS EC2 实例上运行该应用程序。我尝试了几个在这个网站这个网站上提到的例子,但它对我不起作用。任何抬头

4

4 回答 4

16

试试它作为一个新贵。为此,您需要在目录/etc/init/中创建一个myapp.conf文件,其内容如下:

description "myapp server"

start on runlevel [23]
stop on shutdown
exec sudo -u myuser sh -c "cd /path/to/my/app && bundle exec unicorn -D -c /home/ubuntu/apps/st/config/unicorn.rb"

respawn

之后,您应该能够使用以下命令启动/停止/重新启动您的应用程序:

start myapp
stop myapp
restart myapp

使用ps -aux | grep myapp检查您的应用程序是否正在运行。

于 2013-04-03T06:11:50.970 回答
13

您可以将此文件用作模板,设置此文件中提到的适当路径,使其可执行并符号链接到/etc/init.d/my_unicorn_server. 现在您可以使用以下命令启动服务器:

sudo service my_unicorn_server start

然后你可以这样做:

sudo update-rc.d my_unicorn_server defaults

在系统重启时自动启动独角兽服务器。

于 2013-04-03T09:04:36.337 回答
3

就我而言,我只是想要它快点,所以我将启动命令放在/etc/rc.local下面。请注意,我正在使用RVM.

# By default this script does nothing.
cd <your project dir>
/usr/local/rvm/gems/ruby-2.2.1/wrappers/bundle exec unicorn -c <your project dir>/config/unicorn.conf -D
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
exit 0

ps -aux | grep unicorn确保您的启动命令在出口 0 上方。重新启动后,通过直接点击应用程序的 url 或使用命令来检查它是否正在运行。

注意* 以前我使用 Phusion Passenger 但我无法查看它的错误日志,所以我回到了 unicorn。我也尝试了@warantesbr,但没有成功,我猜它失败了,因为我的整个环境都是使用root访问设置的。

于 2016-04-08T08:52:05.687 回答
2

如果您使用的是 unicorn_init 脚本,
您可以配置一个 cron 作业以在重新启动时启动 unicorn 服务器

crontab -e

并添加

@reboot /bin/bash -l -c 'service unicorn_<your service name> start >> /<path to log file>/cron.log 2>&1'
于 2014-08-19T06:18:46.407 回答