1

Sharetribeアプリケーションをデプロイしています。ドキュメントに従って、実行する必要がありますbundle exec rake RAILS_ENV=production jobs:work。問題は、このコマンドの実行後、SSH接続を閉じる必要があり、これを行うにはjobsプロセスを終了する必要があることです。

バックグラウンドで実行するにはどうすればよいbundle exec rake RAILS_ENV=production jobs:workですか?

4

3 に答える 3

1

起動時の染色実行中の背景の統合。

そのために、[systemd] を使用します。

  1. ファイル YourJob.service を /etc/systemd/system/ に作成します。#ファイルは、バックグラウンドで実行するコードを定義するために使用されます。
  2. コマンド「enable systemctl YourJob.service」を実行します
  3. そのようなディレクトリ「/home/marketuser/bin/rakejob.sh」に .sh スクリプト ファイルを作成します。
  4. コマンド「status systemctl tmarketjob.service」で YourJob.service サービスの実行状況を確認しました
  5. サーバーを再起動します。

ファイル構造。

# 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

! /ビン/バッシュ

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 アプリケーションのディレクトリです。

于 2016-11-03T22:10:05.823 に答える
0

nohup を使用するか、コマンドの最後に & 記号を追加するだけで、他のコンソール コマンドと同じように実行できますが、& を使用してターミナル タブを閉じると、& を使用したソリューションは停止することに注意してください。

于 2016-02-09T10:42:16.927 に答える