[英]How to use user's pipenv via systemd? Python is installed via SCL
[英]How to get celery to work with SCL python and systemd?
我有一個將芹菜用於后台任務的Python應用程序。 我使用SCL提供的Python解釋器。
我能夠為應用程序創建一個systemd單位文件: 如何通過systemd使用用戶的pipenv? 通過SCL安裝Python
但我不知道如何將類似的sytstemd單位文件放入芹菜。
我試過了:
[Unit]
Description=app celery service
# Requirements
Requires=network.target
# Dependency ordering
After=network.target
[Service]
# Let processes take awhile to start up
TimeoutStartSec=0
Type=forking
RestartSec=10
Restart=always
Environment="APP_SITE_SETTINGS=/home/app/.config/settings.cfg"
Environment="PYTHONPATH=/home/app/.local/lib/python3.6/site-packages"
WorkingDirectory=/home/app/app-site/app
User=app
Group=app
PermissionsStartOnly=true
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
# Main process
ExecStart=/usr/bin/scl enable rh-python36 -- /home/app/.local/bin/pipenv run celery -A celery_service.celery worker
[Install]
WantedBy=multi-user.target
當我啟動systemd單元時,在日記中我看到celery應用程序啟動了。 幾秒鍾后,服務失敗。
Job for app_celery.service failed because a timeout was exceeded. See "systemctl status app_celery.service" and "journalctl -xe" for details.
這是日記條目:
Jul 17 07:43:31 some.host.com scl[5181]: worker: Cold shutdown (MainProcess)
我也嘗試過Type = oneshot和Type = simple。 他們都沒有工作。 我懷疑這與SCL有關。
有沒有辦法使celery應用程序與SCL和systemd一起使用?
Celery具有命令行選項--detach。 使用--detach時,Celery將啟動工作程序作為后台進程。
這是工作的systemd單位文件:
[Unit]
Description=app celery service
# Requirements
Requires=network.target
# Dependency ordering
After=network.target
[Service]
# Let processes take awhile to start up
TimeoutStartSec=0
Type=simple
RemainAfterExit=yes
RestartSec=10
Restart=always
Environment="SETTINGS=/home/app/.config/settings.cfg"
Environment="PYTHONPATH=/home/app/.local/lib/python3.6/site-packages"
WorkingDirectory=/home/app/app-site/app/
User=app
Group=app
PermissionsStartOnly=true
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
LimitMEMLOCK=infinity
LimitNOFILE=20480
LimitNPROC=8192
# Main process
ExecStart=/usr/bin/scl enable rh-python36 -- /home/app/.local/bin/pipenv run celery -A celery_service.celery worker --detach
[Install]
WantedBy=multi-user.target
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.