gpt4 book ai didi

ruby-on-rails - 在服务器启动时启动 ruby​​ rake 任务

转载 作者:行者123 更新时间:2023-12-04 06:00:00 26 4
gpt4 key购买 nike

我有几个 rails rake 任务需要在服务器启动时启动。我一直在寻求使用 systemd 让它们作为传统服务运行。服务文件是在 /etc/system/systemd 下创建的,但不幸的是,systemd 似乎没有找到该文件:

#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 命令启动我的 rake 并稍后担心它的依赖关系。

最佳答案

首先,我不直接调用 rake,而是调用/path/to/ruby/bin/bundle exec rake my:raketask。

其次,我认为您真的应该看一下工头 gem,因为它旨在处理这种情况,尽管您可能需要调整它以与 systemd 一起使用。

一种方法是从 systemd 初始化文件调用工头,将选项传递给它以指定应用程序目录中的 Procfile(工头配置文件)。

Foreman 已经可以将其配置导出为多种格式,但我认为您的格式不在其中。但,您可以创建一个自定义导出器,将工头配置导出为 systemd 格式。参见 https://github.com/ddollar/foreman/wiki/Custom-exporters了解更多信息。如果您走这条路,请考虑将您的导出商贡献回工头项目。

关于ruby-on-rails - 在服务器启动时启动 ruby​​ rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16168257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com