Running midPoint with systemd

Last modified 28 Feb 2024 17:38 +01:00

This page describes the method how to set up midPoint server for systemd run control. This is the usual setup to start midPoint automatically after system boot on UNIX-like (Linux) systems.

This page describe the behaviour with static definition of the systemd service - example. To generate the systemd service customized to your environment you can use feature of midpoint.sh.

/opt/midpoint/bin/midpoint.sh generate

The following steps assume the midPoint installation in /opt/midpoint directory, owned (both directory and its content) as (previously created) user midpoint. The service will be started as user midpoint and will listen on default TCP 8080 port.

  1. Create a new file /etc/systemd/system/midpoint.service with the following content:

    midpoint.service
    [Unit]
    Description=MidPoint Standalone Service
    ###Requires=postgresql.service
    ###After=postgresql.service
    [Service]
    User=midpoint
    WorkingDirectory=/opt/midpoint
    ExecStart=/usr/bin/java -Xmx2048m -Dmidpoint.home=/opt/midpoint/var -jar /opt/midpoint/lib/midpoint.war
    SuccessExitStatus=143
    ###TimeoutStopSec=120s
    [Install]
    WantedBy=multi-user.target

    Of course, -Xmx2048m needs to be modified for bigger deployments accordingly.

    ExecStart line for versions 4.6 and later is different, because the packaging was changed from WAR to JAR:

    ExecStart=/usr/bin/java -Xmx2048m -Dmidpoint.home=/opt/midpoint/var -jar /opt/midpoint/lib/midpoint.jar
  2. Run the following commands to enable midpoint service:

    sudo systemctl daemon-reload
    sudo systemctl enable midpoint
  3. Start midPoint as systemd service using the following command:

    sudo systemctl start midpoint
  4. You can monitor the startup in /opt/midpoint/var/log/midpoint.log (standard midPoint log) or in /var/log/syslog (the file name may vary; if systemd is used, /opt/midpoint/var/log/midpoint.out is not used.

  5. You can stop midPoint as systemd service using the following command:

    sudo systemctl stop midpoint
  6. To disable automatic midPoint startup/shutdown, use the following command:

    sudo systemctl disable midpoint

If you wish to customize JVM parameters, just modify ExecStart directive in the midpoint.service file and restart midPoint.

Systemd allows you to specify service dependencies. For example to specify that midPoint requires PostgreSQL database (running as systemd service on the same host), just uncomment the lines Requires and After. Systemd will start PostgreSQL before midPoint, and when PostgreSQL goes down, it will also automatically shutdown midPoint.

Was this page helpful?
YES NO
Thanks for your feedback