LoginSignup
12
12

More than 5 years have passed since last update.

systemdを書く。(systemctlコマンドに登録する)

Posted at

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ファイルの出力先やログの出力先は作成しておくこと。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12