Overview
Occasionally HTTP, HTTPS, IMAP, LDAP, or SMTP services would fail to auto-start and give an error Failed to start <Protocol> service. Another application is probably using the service's port number.
This will interrupt the mail flow as the service would have to be started manually.
Prerequisites
Admin (root) access to the Kerio Connect server.
Diagnosis
The following errors are usually generated in the logs:
ProtocolServiceDerives.cpp: Cannot start service HTTPS on port 443, unable to bind service to all IP addresses
ProtocolService.cpp: Service HTTPS failed to start
The error might be caused by incorrect HTTP/S service settings and values in Kerio Connect Administration or by the port collision. In the second scenario, the 3rd-party application is occupying the same port that is being used by the Kerio Connect installation.
Solution
Verify if the startup type is set to Automatic
- Log into Kerio Connect Administration.
- Go to Configuration > Services and make sure the Startup Type is set to Automatic.
- If the Startup Type is not set to Automatic, select each service in the table and set the type to Automatic. Upon restating Kerio Connect, the service should auto-start.
Check the AutoStart value in mailserver.cfg
If the above does not fix the issue, you will need to check the AutoStart value in the mailserver.cfg file.
- Stop Kerio Connect.
- Go to the Kerio Connect installation directory and edit the
mailserver.cfg
file. Locate the table name for the service with the issue, similar to below and make sure that the AutoStart has a value of 1.
<table name="service-https"> <variable name="Port">443</variable> <variable name="AutoStart">1</variable>
- Save the
mailserver.cfg
file and start Kerio Connect.
Disable the conflicting application
Note: for Windows procedure, please refer to Secure IMAP service is not listening in Windows.
- In Linux and Mac installation, open the Terminal and run the following command to identify the process occupying the required port:
sudo lsof -i tcp:<port>
for example,sudo lsof -i tcp:443
for HTTPS port - Identify the correct PID (process ID).
- Kill the process by running the following command:
sudo kill <pid>
In this case, the command will besudo kill 329
- Start the necessary service from Webadmin.
Testing
The required service will be running.