The issue is almost certainly that SELinux doesn't recognize port 8999 as a port your service is allowed to bind to. You can fix it by labeling the port.
For a standard HTTP-type listener, add the port to the `http_port_t` type:
Code: Select all
sudo semanage port -a -t http_port_t -p tcp 8999If it already exists with a different type, use `-m` (modify) instead of `-a` (add):
Code: Select all
sudo semanage port -m -t http_port_t -p tcp 8999Code: Select all
sudo dnf install policycoreutils-python-utilsCode: Select all
sudo semanage port -l | grep 8999Before assuming SELinux is the cause, confirm it. Check the audit log after a failed start:
Code: Select all
sudo ausearch -m avc -ts recentCode: Select all
sudo journalctl -t setroubleshootA couple of things worth checking depending on how SyncoveryCL is being launched:
If it runs as a **systemd service**, also confirm the unit has `WantedBy=multi-user.target` and is enabled (`sudo systemctl enable syncoverycl`), and that `Restart=` is set so it survives. A service that "doesn't stay running" can also be a unit that simply isn't enabled at boot, independent of SELinux.
If SyncoveryCL writes to a non-standard directory or PID file, SELinux may also deny that — the `ausearch` output will show it.
You can also temporarily test the SELinux hypothesis without changing policy:
Code: Select all
sudo setenforce 0 # permissive mode, temporary until reboot