#RQをsystemdでデーモン化
分かる人には当たり前すぎるが、一部のわからない人のために寄稿(再投稿)
##環境
ubuntu 16.04LTS
Python クローリング&スクレイピングにてsupervisorでRQをデーモン化していたが
supervisorが上手く動かなかったためsystemdで実装
rq.service
[Unit]
Description = rq daemon
[Service]
WorkingDirectory=/home/pomcho555/project
Environment="PATH=/home/pomcho555/project/myprojectenv/bin"
ExecStart = /home/pomcho555/project/myprojectenv/bin/rq worker
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
注意点は3つ
- rq workerの本体の絶対パスを指定して実行してやること
- Environmentはpythonの実行環境を指定する、virtualenvを使っている場合はそのパス
- WorkingDirectoryを実行したいジョブ(sample_task.pyとか)と同じディレクトリにすること
2を怠るとrqは起動してもジョブが渡せない(違う階層にいる)ので注意
#実行
sudo systemctl start rq
#確認
sudo systemctl status rq
Active: active (running)がでたらOK
#おまけ
RQ用ダッシュボードモジュール
rq-dashboardは運用が捗るのでオススメ