在服务器启动时启动ruby rake任务
我有几个rails rake任务需要在服务器启动时启动。我一直在寻找使他们作为使用systemd的传统服务运行。服务文件/etc/system/systemd
下创建但不幸的是,它看起来像systemd没有找到文件:在服务器启动时启动ruby rake任务
#systemctl start screens.service
Failed to issue method call: Unit screens.service failed to load: No such file or directory. See system logs and 'systemctl status screens.service' for details.
#systemctl status screens.service
screens.service
Loaded: error
Active: inactive (dead)
我目前使用的Fedora 15
我怎样才能让我的systemd服务工作?是否有另一种方法可以让我的rake任务在系统启动时运行。
更新: screens.service文件内容
[Unit]
Description=Send Reminders
[Service]
Type=simple
User=myuser
WorkingDirectory=/path/to/rails/app
ExecStart=/usr/local/rvm/gems/ruby-1.9.3-p194/bin/rake reminders:send
我知道我需要在我需要它在启动时工作,设置的依赖,但目前我正在尝试使用systemctl命令来启动我的耙子,以后担心它的依赖关系。
为了使新的增值服务,我不得不插入以下命令systemd留意了:
systemctl daemon-reload
一般来说,如果你需要在应用程序初始化开始的东西,你可以把.RB文件
config/initializers/
文件夹
BTW可以ü详细说明您的要求,怎么可能有这样的一些其他的方式相同:)
我需要运行2个独立于我的应用程序的后台进程,类似于delayed_jobs'rake jobs:work' – wael34218 2013-04-23 11:52:30
首先,不要直接调用rake,而是调用/ path/to/ruby/bin/bundle exec rake my:raketask。第二,我认为你应该真正看看领班宝石,因为它是专门用来处理这种情况的,尽管你可能不得不适应它与systemd一起工作。
一种方法是从systemd init文件中调用foreman,并将其传递给应用程序目录中的Procfile(foreman config file)。
工头已经可以将其配置导出为多种格式,但我认为你不在其中。但是, 您可以创建一个自定义导出程序,将导出配置导出为systemd格式。有关更多信息,请参阅https://github.com/ddollar/foreman/wiki/Custom-exporters。如果你走这条路,考虑把你的出口商退回到工头项目。
我正在考虑让它与god(http://godrb.com/)一起工作,但是我必须做系统工作 – wael34218 2013-04-23 18:02:33
我们可以看看在'screens.service'文件? – marcosbeirigo 2013-04-23 11:42:18
系统日志中是否有任何有关未找到的文件或目录的信息? – sockmonk 2013-04-23 14:34:27