2017-05-17 10 views
0

私は、Ubuntu 16.04 Server上で稼働しているnginxウェブサーバを利用しています。 私は、Railsアプリケーションのためのresqueワーカーとスケジューラ用のinitスクリプトをビルドしようとしています。 resque workerのためのsystemd initスクリプト

は、私は "/の/ etc/systemdに/システム" のファイルresque-worker.serviceを作成し、それは次のようになります。 "systemctlデーモンリロード" と「systemctlを実行した後に何らかの理由で

[Unit] 
Description=resque-worker for pageflow 

[Service] 
Type=forking 
ExecStart=/home/pageflow/pageflow_daad/rake resque:scheduler QUEUE=* RAILS_ENV=production > /home/pageflow/pageflow_daad/log/resqueschedule.log & 

[Install] 
WantedBy=multi-user.target 

「私はこのエラーを取得:

$ systemctl status resque-worker.service 
● resque-worker.service - resque-worker for pageflow 
    Loaded: loaded (/etc/systemd/system/resque-worker.service; enabled; vendor preset: enabled) 
    Active: failed (Result: exit-code) since Wed 2017-05-17 15:52:38 CEST; 15s ago 
    Process: 28096 ExecStart=/home/pageflow/pageflow_daad/rake resque:scheduler QUEUE=* RAILS_ENV=production > /home/pageflow/pageflow_daad/log/resqueschedule.log & (code=exited, status=203/EXEC) 

May 17 15:52:38 ostheim systemd[1]: Starting resque-worker for pageflow... 
May 17 15:52:38 ostheim systemd[1]: resque-worker.service: Control process exited, code=exited status=203 
May 17 15:52:38 ostheim systemd[1]: Failed to start resque-worker for pageflow. 
May 17 15:52:38 ostheim systemd[1]: resque-worker.service: Unit entered failed state. 
May 17 15:52:38 ostheim systemd[1]: resque-worker.service: Failed with result 'exit-code'. 

を私は私のRailsアプリのルートパスを使用この場合は 『name.serviceを開始/ホーム/ページフロー/ pageflow_daad /レーキ』。 〜 ' `

May 17 15:30:26 ostheim rake[26846]: rake aborted! May 17 15:30:26 ostheim rake[26846]: ArgumentError: couldn't find HOME environment -- expanding私はこの中に多くの経験を持つ誰かが私を助けることを願って:私はエラーを得たすくいバイナリのパスを試みたところ前

回。

事前に感謝し、よろしく、 ロナルド

答えて

1

いくつかのdocuサイトとドキュメント自体を勉強した後、私はが走っています。このスクリプトでは

[Unit] 
Description=resque-scheduler for pageflow 

[Service] 
User=yourUser 
WorkingDirectory=/path/to/rails/app 
ExecStart=/path/to/executeable/rake resque:scheduler & 
Environment=QUEUE=* 
Environment=RAILS_ENV=production 

[Install] 
WantedBy=multi-user.target 

systemctl daemon-reload 

&

systemctl start example.service 

サービスstartetが実行されている、と魔法のように動作します。ただ、誰かが、これが参考になっあることを発見した場合、これを投稿したいと考えていました。

1

は私がsystemdにユニット内部のエラーが2種類だと思います。

、その後

[Unit] 
Description=resque-worker for pageflow 

[Service] 
Type=forking 
ExecStart=/home/pageflow/pageflow_daad/rake resque:scheduler 
Environement=QUEUE=* 
Enrironement=RAILS_ENV=production 

[Install] 
WantedBy=multi-user.target 

1)のenvにsystemdに道を使って)それ

journalctl -u resque-worker.service 

2を見てjournalctlを使用し、その後、アプリケーションのログを取得systemdにしましょう。ここではいくつかのアドバイスがあります

systemctl daemon-reload 
systemctl restart resque-worker.service 
+0

アドバイスありがとうございました。 私が言ったようにsystemdユニットを変更しましたが、同じエラーが発生します。 journalctl -u resque-worker.service私にcode = exited status = 203 thats allを与えるだけです。 これ以上のアイデアはありますか?事前に感謝します – LongRon

+0

私はレーキの専門家ではありませんが、あなたは 'Type = simple'を' Type = forking'ではなく、ドキュメントへのポインタhttps://www.freedesktop.org/software/systemd/man /systemd.service.html – papey

関連する問題