自动启动 Airflow Webserver 作为服务

问题描述

我目前想编写一个系统配置文件来启动气流网络服务器。这是我的配置文件定义:

#airflow-webserver.service

[Unit]
Description=Airflow webserver daemon
After=network.target postgresql.service MysqL.service redis.service rabbitmq-server.service
Wants=postgresql.service MysqL.service redis.service rabbitmq-server.service

[Service]
#EnvironmentFile=/etc/default/airflow
Environment="PATH=/root/airflow_venv/bin"
User=airflow
Group=airflow
Type=simple
ExecStart=/root/airflow_venv/bin/airflow webserver -p 8080 --pid /root/airflow/airflow-webserver.pid
Restart=on-failure
RestartSec=5s
PrivateTmp=true

[Install]
WantedBy=multi-user.target

但是运行“sudo service airflow-webserver status”它返回:

● airflow-webserver.service - Airflow webserver daemon
   Loaded: loaded (/etc/systemd/system/airflow-webserver.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2021-01-25 06:58:14 UTC; 3s ago
  Process: 5913 ExecStart=/root/airflow_venv/bin/airflow webserver -p 8080 --pid /root/airflow/airflow-webserver.pid (code=exited,status=217/USER)
 Main PID: 5913 (code=exited,status=217/USER)
   CGroup: /system.slice/airflow-webserver.service

我已经看过 How to enable a virtualenv in a systemd service unit?,因为它听起来是一个类似的问题。但是,我在那里找不到我的解决方案。我使用的操作系统是 Amazon Linux 2 AMI。

有人可以帮忙吗?

拉兹卢

解决方法

对于任何遇到相同错误的人:

主 PID:5913(代码=退出,状态=217/用户)

这表示用户不正确。调整用户和群组后,这项服务对我有用。