首页 > 解决方案 > 在 ubuntu 16.04 上将 rails sidekiq 作为系统服务运行

问题描述

我有以下系统要求:

  1. Ubuntu 16.04
  2. ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
  3. Rails 4.2.5

我可以在我的项目中运行命令bundle exec sidekiq -q queue而不会出错。不幸的是,当我尝试使用以下文件名 single_profile_crawl_worker.service 创建系统服务时:

[Unit]
Description=sidekiq

[Service]
WorkingDirectory=/home/jaisanas/Documents/work/myproject
ExecStart=/home/jaisanas/.rvm/gems/ruby-2.2.1@scraper/bin/bundle exec sidekiq -q tahilalat

[Install]
WantedBy=multi-user.target

然后我运行命令:

sudo systemctl start single_profile_crawl_worker.service

然后当我检查服务状态时,通过以下命令:

sudo systemctl status single_profile_crawl_worker.service

它返回如下错误:

single_profile_crawl_worker.service - sidekiq
 Loaded: loaded (/etc/systemd/system/single_profile_crawl_worker.service; disabled; vendor preset: enabled)
       Active: failed (Result: exit-code) since Kam 2018-08-09 14:13:43 WIB; 5s ago
      Process: 9822 ExecStart=/home/jaisanas/.rvm/gems/ruby-2.2.1@scraper/bin/bundle exec sidekiq -q tahilalat (code=exited, status=127)
     Main PID: 9822 (code=exited, status=127)

    Agu 09 14:13:43 jaisanas-X456URK systemd[1]: Started sidekiq.
    Agu 09 14:13:43 jaisanas-X456URK bundle[9822]: /usr/bin/env: ‘ruby_executable_hooks’: No such file or directory
    Agu 09 14:13:43 jaisanas-X456URK systemd[1]: single_profile_crawl_worker.service: Main process exited, code=exited, status=127/n/a
    Agu 09 14:13:43 jaisanas-X456URK systemd[1]: single_profile_crawl_worker.service: Unit entered failed state.
    Agu 09 14:13:43 jaisanas-X456URK systemd[1]: single_profile_crawl_worker.service: Failed with result 'exit-code'.

它说/usr/bin/env: ‘ruby_executable_hooks’: No such file or directory。然后我尝试了几种解决方案,比如通过运行安装 ruby​​_executable_hookssudo gem install --user-install executable-hooks不起作用,有人知道我创建这个 sidekiq 系统服务的步骤有什么问题吗?

标签: ruby-on-railsrubyubuntu-16.04bundlersidekiq

解决方案


推荐阅读