| 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. |