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?

Max
quelle
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
Alp
quelle
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