Starten Sie den Selleriedämon über systemd


4

Im Verzeichnis /usr/lib/systemd/system/celery.service:

[Unit]
Description=Celery Nodes Daemon
After=network.target

[Service]
Type=forking
PIDFile=/var/run/celery/main.pid
ExecStart=/usr/bin/python2 /home/myuser/path/to/Django/myproject/manage.py celeryd_multi start w1 --pidfile="/var/run/celery/%n.pid" --logfile="/var/log/celery/%n.log" --cmd="-m celery.bin.celeryd_detach"
ExecStop=/usr/bin/python2 /home/myuser/path/to/Django/myproject/manage.py celeryd_multi stopwait w1 --pidfile="/var/run/celery/%n.pid"

[Install]
WantedBy=multi-user.target

In der Schale:

$ sudo systemctl enable celery.service
ln -s '/usr/lib/systemd/system/celery.service' '/etc/systemd/system/multi-user.target.wants/celery.service'
$ sudo systemctl start celery.service
Job for celery.service failed. See 'systemctl status celery.service' and 'journalctl -xn' for details.
$ sudo systemctl status celery.service
celery.service - Celery Nodes Daemon
  Loaded: loaded (/usr/lib/systemd/system/celery.service; enabled)
  Active: failed (Result: exit-code) since Пт 2013-03-29 13:22:24 NOVT; 38s ago
  Process: 32273 ExecStart=/usr/bin/python2 /home/anarchist/Desktop/Develop/Django/myproject/manage.py celeryd_multi start w1 --pidfile="/var/run/celery/%n.pid" --logfile="/var/log/celery/%n.log" --cmd="-m celery.bin.celeryd_detach" (code=exited, status=1/FAILURE)

In journalctl -xn nichts über Sellerie. Wie starte ich den Selleriedämon über systemd?


Ich bin auch sehr an dieser Frage interessiert
— Alp

Wenn diese Frage immer noch relevant ist, können Sie versuchen, die Befehle ExecStart und ExecStop in separaten Shell-Skripten in / usr / local / bin
— FSMaxB 26.10.13

Im Arch / usr / bin
— Max

Antworten:


2

Nach einer ganzen Reihe von Experimenten habe ich diese Konfiguration für den Dienst gefunden (modifiziert, um Ihrem Beispiel zu entsprechen):

[Unit]
Description=Celery Server
After=network.target

[Service]
Type=oneshot
KillMode=control-group
RemainAfterExit=yes
Restart=no
ExecStart=/usr/bin/python2 /home/myuser/path/to/Django/myproject/manage.py celeryd_multi start w1 --pidfile="/tmp/%n.pid" --logfile="/var/log/celery/%n.log" --loglevel=INFO --time-limit=300
ExecStop=/usr/bin/python2 /home/myuser/path/to/Django/myproject/manage.py celeryd_multi stopwait w1 --pidfile="/tmp/%n.pid"

[Install]
WantedBy=multi-user.target

Seine endgültige Version habe ich an den Entwickler geschickt. Wir warten auf neue Versionen. Bei Interesse github.com/celery/celery/pull/1295
— Max

danke für den Tipp. Übrigens, wenn Sie denken, dass meine Antwort geholfen hat, ziehen Sie bitte in Betracht, sie zu stimmen und / oder anzunehmen
— Alp

Entschuldigung ich bin verwirrt. Ich habe dem Entwickler meine Wahl geschickt.
— Max

Bitte beachten Sie, dass dies After=network.targetnur zum Herunterfahren und nicht zum Starten gedacht ist. Wenn Sie auf die Netzwerkkonfiguration warten möchten, sollten Sie Wants=network-online.targetund verwenden After=network-online.target.
— Pavel Šimerda
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.