ubuntu1804ではCeleryがSystemdに自動で登録されなかったので自分で書くことに。
ファイルを置く対象のディレクトリ
/etc/systemd/system
marumaru .service
【Celery systemdサンプル】
http://docs.celeryproject.org/en/latest/userguide/daemonizing.html#usage-systemd
serviceファイルを書く。
/etc/systemd/system/celeryd.service
※【】はコメントです
# original write【コメント行なので適当です】
[Unit]
Documentation=man:systemd-sysv-generator(8) 【systemctl statusで見た際にDocs: で表示される文章】
Description=Celery Service 【systemctl statusで見た際に1行目のサービス名の横に出る文章】
After=network.target 【このサービス起動時に事前にnetwork.targetが起動中であることを確認(Networkが上がってないとだめ。)】
[Service]
User=celery 【サービスを起動するユーザの指定】
Group=celery 【サービスを起動するグループの指定】
WorkingDirectory=/var/www/celery 【実行ディレクトリの指定】
Type=forking 【Type=simple(フォアグラウンド処理。)、forking(起動後バックグラウンド処理)】
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/local/bin/celery multi start w1 -A celery -l info --time-limit=300 --concurrency=8 --pidfile=/var/run/celery/%n.pid --logfile=/var/log/celery/%n.log 【起動コマンド】
ExecStop=/usr/local/bin/celery multi stopwait w1 --pidfile=/var/run/celery/%n.pid 【停止コマンド】
ExecReload=/usr/local/bin/celery multi restart w1 -A celery -l info --time-limit=300 --concurrency=8 --pidfile=/var/run/celery/%n.pid --logfile=/var/log/celery/%n.log 【restart時のコマンド】
[Install]
WantedBy=multi-user.target 【enableでスタートアップ(?)に登録するときのrunlevel。(runlevel 5)】
systemd の再読込
systemctl daemon-reload
systemd の登録確認
systemctl
もしくは
systemctl list-unit-files
サービス起動
systemctl start celeryd.service
サービス停止
systemctl stop celeryd.service
サービス再起動
systemctl restart celeryd.service
systemctl reload celeryd.service
予めPIDファイルの出力先やログの出力先は作成しておくこと。