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/fmeserver-appserver.service
- <FMEFlowDir>/Server/startup/systemd/fmeserver-cleanup.service
- <FMEFlowDir>/Server/startup/systemd/fmeserver-core.service
- <FMEFlowDir>/Server/startup/systemd/fmeserver-database.service
- <FMEFlowDir>/Server/startup/systemd/fmeserver-engines.service
- <FMEFlowDir>/Server/startup/systemd/fmeserver-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 fmeserver-appserver.service and remove the following lines:
- Create a new folder tomcat in /var/run with fmeserver:fmeserver ownership.
- Change ownership of tomcat logs in /opt/fmeserver/Utilities/tomcat/logs/ to fmeserver:fmeserver.
User=fmeserver
Group=fmeserver
To enable startup scripts to run at system boot time
Run the following command for each script:
systemctl enable *.service
For example:
systemctl enable fmeserver-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 fmeserver-core.service
To start services manually
Run the following command for each script:
systemctl start *.service
For example:
systemctl start fmeserver-core.service
To stop services manually
Run the following command for each script:
systemctl stop *.service
For example:
systemctl stop fmeserver-core.service
Make a copy of the FME Flow startup scripts:
- <FMEFlowDir>/Server/startup/SysV/FMEServerAppServer
- <FMEFlowDir>/Server/startup/SysV/FMEServerCleanup
- <FMEFlowDir>/Server/startup/SysV/FMEServerCore
- <FMEFlowDir>/Server/startup/SysV/FMEServerDatabase
- <FMEFlowDir>/Server/startup/SysV/FMEServerEngines
- <FMEFlowDir>/Server/startup/SysV/FMEServerWebSocket
Place the scripts here:
- /etc/init.d/FMEServerAppServer
- /etc/init.d/FMEServerCleanup
- /etc/init.d/FMEServerCore
- /etc/init.d/FMEServerDatabase
- /etc/init.d/FMEServerEngines
- /etc/init.d/FMEServerWebSocket
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 FMEServer* defaults