首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ROR,Redis,Resque,上帝& Cron on Ubuntu Server - Boot

ROR,Redis,Resque,上帝& Cron on Ubuntu Server - Boot
EN

Stack Overflow用户
提问于 2012-10-01 07:56:38
回答 1查看 1.1K关注 0票数 0

我做了几份工作,上帝在我的红宝石应用程序中负责处理。但是,当服务器重新启动时,作业将停止。我想避免这种情况,所以我已经在我的服务器上编写了这个脚本。它看起来像这样。

my_app.sh

代码语言:javascript
复制
#!/bin/bash

# god tasks

#


case $1 in

start)

/usr/local/rvm/gems/ruby-1.9.3-p194/bin/god      
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/god start
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/god load /usr/local/Linux/apache2/www/hej.se/ruby/config/resque.god
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/god load /usr/local/Linux/apache2/www/hej.se/ruby/config/resque_schedule.god

;;
esac

exit 0

如果我手动登录并写入

"/etc/init.d/my_app start“

它给了我

代码语言:javascript
复制
Sending 'start' command

No matching task or group
Sending 'load' command with action 'leave'

The following tasks were affected:
  resque-0
  resque-1
  resque-2
  resque-3
  resque-4
Sending 'load' command with action 'leave'

The following tasks were affected:
  resque_scheduler

一切正常,做我想做的事,也就是工作。

我尝试过几种在引导(Linux10.4.4LTS)、rc.local、rc-默认情况下启动这个脚本的方法,现在我的最新尝试是crontab。

脚本必须在我的用户而不是根用户下运行(如果我在root下运行它,它就找不到ruby安装)。

因此,我在我的用户帐户下配置了crontab:

代码语言:javascript
复制
@reboot /etc/init.d/my_app start

可惜这行不通..。我不知道我做错了什么这可能是不必要的。我的意思是,当启动红宝石应用程序时,你不应该每辆车都能做到这一点吗?

我在这台服务器上使用乘客,我不知道这和它有什么关系吗?

下面的解决方案以及我对sh:所做的更改

my_app.sh

代码语言:javascript
复制
bash -c "source /usr/local/rvm/scripts/rvm && /usr/local/rvm/gems/ruby-1.9.3-p194/bin/god"      
bash -c "source /usr/local/rvm/scripts/rvm && /usr/local/rvm/gems/ruby-1.9.3-p194/bin/god start"
bash -c "source /usr/local/rvm/scripts/rvm && /usr/local/rvm/gems/ruby-1.9.3-p194/bin/god load /usr/local/Linux/apache2/www/hej.se/ruby/config/resque.god"
bash -c "source /usr/local/rvm/scripts/rvm && /usr/local/rvm/gems/ruby-1.9.3-p194/bin/god load /usr/local/Linux/apache2/www/hej.se/ruby/config/resque_schedule.god"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-01 08:11:08

忘了这件事吧。

Centos/Fedora:

代码语言:javascript
复制
sudo chmod a+x /etc/init.d/my_app
sudo chkconfig --add my_app
sudo chkconfig my_app on

Ubuntu/Debian:

代码语言:javascript
复制
sudo update-rc.d my_app defaults

这两种符号都将脚本链接到/etc/rc1.d/etc/rc2.d等,并使脚本可以在启动时为这些运行级别运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12669396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档