FME Flow: 2024.2
Configuring FME Flow as a System Service (Linux)
You can configure FME Flow as a system service that starts when you start your system. You should do this only if you have set up system services before and understand the different run levels on your system.
FME Flow is composed of a series of components, and each component has its own scripts. Both systemd and SysV scripts are provided.
Getting Started
The following FME Flow systemd startup scripts are provided upon installation:
- <FMEFlowDir>/Server/startup/systemd/fmeflow-appserver.service
- <FMEFlowDir>/Server/startup/systemd/fmeflow-cleanup.service
- <FMEFlowDir>/Server/startup/systemd/fmeflow-core.service
- <FMEFlowDir>/Server/startup/systemd/fmeflow-database.service
- <FMEFlowDir>/Server/startup/systemd/fmeflow-engines.service
- <FMEFlowDir>/Server/startup/systemd/fmeflow-websocket.service
- Copy these scripts and place them in the following directory, depending on your privilege level:
- root privilege: /etc/systemd/system/
- user-level privilege (no system administration rights): /usr/lib/systemd/system/
- If the Web Application Server component of FME Flow is configured for communication on a port under 1024, this service runs as the root user. Open fmeflow-appserver.service and remove the following lines:
- Create a new folder tomcat in /var/run with fmeflow:fmeflow ownership.
- Change ownership of tomcat logs in /opt/fmeflow/Utilities/tomcat/logs/ to fmeflow:fmeflow.
User=fmeflow
Group=fmeflow
To enable startup scripts to run at system boot time
Run the following command for each script:
systemctl enable *.service
For example:
systemctl enable fmeflow-core.service
To disable startup scripts from running at system boot time
Run the following command for each script:
systemctl disable *.service
For example:
systemctl disable fmeflow-core.service
To start services manually
Run the following command for each script:
systemctl start *.service
For example:
systemctl start fmeflow-core.service
To stop services manually
Run the following command for each script:
systemctl stop *.service
For example:
systemctl stop fmeflow-core.service
Make a copy of the FME Flow startup scripts:
- <FMEFlowDir>/Server/startup/SysV/FMEFlowAppServer
- <FMEFlowDir>/Server/startup/SysV/FMEFlowCleanup
- <FMEFlowDir>/Server/startup/SysV/FMEFlowCore
- <FMEFlowDir>/Server/startup/SysV/FMEFlowDatabase
- <FMEFlowDir>/Server/startup/SysV/FMEFlowEngines
- <FMEFlowDir>/Server/startup/SysV/FMEFlowWebSocket
Place the scripts here:
- /etc/init.d/FMEFlowAppServer
- /etc/init.d/FMEFlowCleanup
- /etc/init.d/FMEFlowCore
- /etc/init.d/FMEFlowDatabase
- /etc/init.d/FMEFlowEngines
- /etc/init.d/FMEFlowWebSocket
From the /etc/init.d/ directory, update permissions on these files with the following chmod command:
sudo chmod +x FME*
Register the FME Flow services with the following command:
sudo update-rc.d FMEFlow* defaults