Skip to content

Latest commit

 

History

History

systemd

The systemd files in this directory are tested on RedHat based systems. Copy (or link) them to /usr/lib/systemd/system
and copy the airflow.conf to /etc/tmpfiles.d/ or /usr/lib/tmpfiles.d/. Copying airflow.conf ensures /run/airflow is
created with the right owner and permissions (0755 airflow airflow)

You can then start the different servers by using systemctl start <service>. Enabling services can be done by issuing
 systemctl enable <service>.

By default the environment configuration points to /etc/sysconfig/airflow . You can copy the "airflow" file in this
directory and adjust it to your liking.

With some minor changes they probably work on other systemd systems.

Required services
-----------------

Since Airflow 3.0 the airflow processes that handle the different components are split into separate services. At a
minimum you need to run the following services:

* airflow-scheduler.service
* airflow-dag-processor.service
* airflow-api.service

Additionally the following services are available and can be enabled as needed:

* airflow-triggerer.service for deferrable task triggering (required only if you use deferrable tasks or event
  scheduling)
* airflow-worker.service for a Celery worker
* airflow-flower.service for a Flower monitoring interface
* airflow-kerberos.service for the Kerberos renewal daemon

For both ``dag_processor`` and ``triggerer``, the ``/api/v2/monitor/health`` endpoint returns ``unhealthy`` for the
status and ``down`` for the detailed status when no instance is alive. If there are no unfinished jobs for the
component, its latest heartbeat and instances are ``null``. Make sure the services you depend on are started;
ignore the triggerer health status only when your deployment intentionally does not use a triggerer.
See the "Checking Airflow Health Status" documentation for details.