您可以使用 systemd 或 upstart ,如下所述:
https://github.com/apache/incubator-airflow/tree/master/scripts/systemd
https://github.com/apache/incubator-airflow/tree/master/scripts/upstart
以下是以防万一将来链接中断的说明。
提供的 systemd 文件在基于 RedHat 的系统上进行了测试。将它们复制(或链接)到/usr/lib/systemd/system 并将airflow.conf 复制到/etc/tmpfiles.d/ 或/usr/lib/tmpfiles.d/。复制airflow.conf 确保/run/airflow 以正确的所有者和权限创建(0755 气流气流)
然后,您可以使用 systemctl start 启动不同的服务器。启用服务可以通过发出
systemctl enable [service]
默认情况下,环境配置指向 /etc/sysconfig/airflow 。您可以复制此目录中的“气流”文件并根据自己的喜好进行调整。确保指定SCHEDULER_RUNS 变量。
通过一些小的更改,它们可能适用于其他 systemd 系统。
您可以修改下面提供的配置文件以反映您的环境
/etc/sysconfig/airflow 文件的内容
# This file is the environment file for Airflow. Put this file in /etc/sysconfig/airflow per default
# configuration of the systemd unit files.
#
# AIRFLOW_CONFIG=
# AIRFLOW_HOME=
#
# required setting, 0 sets it to unlimited. Scheduler will get restart after every X runs
SCHEDULER_RUNS=5
/etc/tmpfiles.d/airflow.conf 或 /usr/lib/tmpfiles.d/airflow.conf 文件的内容
D /run/airflow 0755 airflow airflow
/usr/lib/systemd/system/airflow-scheduler.service 的内容
[Unit]
Description=Airflow scheduler 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/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow scheduler -n ${SCHEDULER_RUNS}
KillMode=process
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target