When attempting to perform a graceful restart or a standard start of the SiteMinder Access Gateway (SPS) using a Service Account, the operation fails with the following errors in the console or logs:
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80no listening sockets available, shutting downAH00015: Unable to open logshttpd not running, trying to startFAILED! => { "changed": true, "cmd": "/opt/CA/secure-proxy/httpd/bin/apachectl graceful", "delta": "0:00:00.012345", "end": "2026-01-01 01:01:01.123456", "msg": "non-zero return code", "rc": 1, "start": "2026-01-01 01:01:01.12345", "stderr": "[Thu Jan 01 01:01:01.123456 2026] [so:warn] [pid 1122334455:tid 1234567890] AH01574: module deflate_module is already loaded, skipping\n[Thu Jan 01 01:01:01.123456 2026] [so:warn] [pid 1122334455:tid 1234567890] AH01574: module headers_module is already loaded, skipping\n(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80\nno listening sockets available, shutting down\nAH00015: Unable to open logs", "stderr_lines": [ "[Thu Jan 01 01:01:01.123456 2026] [so:warn] [pid 1122334455:tid 1234567890] AH01574: module deflate_module is already loaded, skipping", "[Thu Jan 01 01:01:01.123456 2026] [so:warn] [pid 1122334455:tid 1234567890] AH01574: module headers_module is already loaded, skipping", "(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80", "no listening sockets available, shutting down", "AH00015: Unable to open logs" ], "stdout": "httpd not running, trying to start", "stdout_lines": [ "httpd not running, trying to start" ]} |
Product: All version of Access Gateway
Operating System: Linux
This issue is typically caused by one of the following:
httpd) did not shut down completely and is still bound to port 80.root user. When a non-root Service Account attempts a graceful restart, it lacks the necessary permissions to signal or terminate the root-owned parent processes.apachectl or httpd directly instead of the supported sps-ctl management scripts can lead to inconsistent state management.Identify the process currently holding port 80:
netstat -anp | grep :80
# OR
ss -tanp | grep 80
If an orphaned httpd process is identified, terminate it using the PID found in the previous step:
Run command to gracefully shutdown the process.
# If that does not work then kill the process.
# Further determination may be required if a new application is deployed that will bind to the conflicting port so it can be configured with different port.kill -9 <PID>
Ensure that the Service Account user has full recursive ownership and write permissions for the entire Access Gateway installation path, specifically the log directories
Avoid using apachectl directly. Always use the provided sps-ctl script to manage services:
./sps-ctl stop./sps-ctl startIf using automation tools like Ansible, ensure the playbooks call sps-ctl and include logic to verify that processes have fully exited before attempting a restart.