Services
If a service is not running, work through the commands below to identify the cause.
The examples below use msh-pm-milter as the target service. The same commands apply to msh-pm-settings - replace msh-pm-milter with msh-pm-settings throughout.
msh-pm-milter service
Check the current status of the milter service.
systemctl status msh-pm-milter.service
The Active: line shows the current state. active (running) means the service is healthy. activating (auto-restart) means systemd is repeatedly restarting the service because it exits too quickly - investigate the logs below to find out why.
msh-pm-milter.service - MSH Postfix Milter (milter)
Loaded: loaded (/etc/systemd/system/msh-pm-milter.service; enabled; preset: enabled)
Active: activating (auto-restart) since Fri 2026-05-08 10:48:54 CDT; 4s ago
Invocation: fbe38354cf8c4cba8be0279b5ec44b1a
Process: 10920 ExecStart=/opt/msh-pm-milter/bin/msh-pm-milter (code=exited, status=0/SUCCESS)
Main PID: 10920 (code=exited, status=0/SUCCESS)
Mem peak: 75.6M
CPU: 1.554s
View the systemd journal to see when the service started and stopped.
sudo journalctl -u msh-pm-milter
"Deactivated successfully" means the process exited cleanly rather than crashing. Combined with auto-restart, this confirms the service starts, runs briefly, and exits on its own - rather than being killed.
May 08 10:37:19 debian systemd[1]: Started msh-pm-milter.service - MSH Postfix Milter (milter).
May 08 10:37:20 debian systemd[1]: msh-pm-milter.service: Deactivated successfully.
May 08 10:37:20 debian systemd[1]: msh-pm-milter.service: Consumed 1.467s CPU time, 72.9M memory peak.
Read the milter console log to see what the service reported before it exited.
sudo cat /opt/msh-pm-milter/var/log/milter.out
Cannot read settings! means the milter service cannot connect to the settings service (msh-pm-settings.service). Verify that the settings service is running before the milter starts.
SLF4J(I): Connected with provider of type [ch.qos.logback.classic.spi.LogbackServiceProvider]
Cannot read settings!
Read the structured application log for more detail.
sudo cat /opt/msh-pm-milter/var/log/msh-pm-milter.log
The ERROR line confirms the root cause.
10:51:33.263 [main] INFO msh.pm.milter.Entry - -------------------------------------------------------
10:51:33.266 [main] INFO msh.pm.milter.Entry - MSH Postfix Milter (milter)
10:51:33.267 [main] INFO msh.pm.milter.Entry - Version 1.0.0
10:51:33.267 [main] INFO msh.pm.milter.Entry - -------------------------------------------------------
10:51:33.439 [main] ERROR msh.pm.milter.Entry - Cannot read settings!