如何运行佣金工作:在后台工作?

时间:2016-02-09 10:38:31

标签: ruby-on-rails ruby rake sharetribe

我正在部署 Sharetribe 应用程序。在documentation之后,我需要运行bundle exec rake RAILS_ENV=production jobs:work。问题是执行此命令后,我需要关闭SSH连接,为此我必须退出jobs进程。

如何在后台运行bundle exec rake RAILS_ENV=production jobs:work

3 个答案:

答案 0 :(得分:1)

在启动时将背景与污渍执行者整合。

为此,我们将使用[systemd]。

  1. 在/ etc / systemd / system /中创建文件YourJob.service。 #The File将用于定义在后台执行的代码。
  2. 运行命令"启用systemctl YourJob.service"
  3. 在任何此类目录中创建.sh脚本文件" /home/marketuser/bin/rakejob.sh" C
  4. 使用命令" status systemctl tmarketjob.service"
  5. 检查YourJob.service服务的执行状态
  6. 重新启动服务器。
  7. 文件结构。

    #YourJob.service

        [Unit]
        Description = Tmarket background processing daemon program
    
        [Service]
        Type = Single
        ExecStart = / home / marketuser / bin / rakejob.sh
        Restart = always
    
       [Install]
       WantedBy = graphical.target
    

    #Rakejob.sh

    ! / Bin / bash

    export PATH = / home / marketuser / bin:     /home/marketuser/.nvm/versions/node/v6.1.0/bin: /home/marketuser/.rbenv/plugins/ruby-build/bin: / home / marketuser /. rbenv / shims: /home/marketuser/.rbenv/bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games
    cd / var / www / tmarket /
    exec rake jobs: work
    

    [ - ] PATH通过执行控制台命令' echo $ PATH'来实现。 tmarket是我们的RoR应用程序的目录

答案 1 :(得分:0)

您可以像使用nohup或只是添加&命令末尾的符号,但注意解决方案与&如果您将关闭终端标签,它将被停止。

答案 2 :(得分:0)

请在您的Gemfile中加入gem“守护进程”。并使用以下命令

RAILS_ENV =生产脚本/ delayed_job start

有关详细信息,请查看delayed job gem