If the web component fails to startup with a "bind failed/Address already in use" error when starting/restarting the Columbus services then it may be that there is a port conflict.
$ sudo /etc/init.d/columbus stop
* Stopping Columbus
Web: WARNING : Nginx server process ID could not be found - server might not be running ERROR : Failed to stop Nginx server process. WARNING : Fast-CGI server process ID could not be found - server might not be running ERROR : Failed to stop Fast-CGI [FAILED]rocess.
Acc: [ OK ]
Database: [ OK ]
Celery: [ OK ]
$ sudo /etc/init.d/columbus start
* Starting Columbus
Database: [ OK ]
Acc: [ OK ]
Web: ERROR : Failed to start Nginx server ERROR : Sub-process call error message: nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/usr/local/PerkinElmerCTG/Columbus/webapp/server/config/columbus_server_certificate.pem" nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] still could not bind() ERROR : Failed to[FAILED]ginx server INFO : Fast-CGI server is [up]
Celery: [ OK ]
The error suggests that there is a conflict associated with ports 443 and 80.
Use a tool such as 'netstat' to check to see which ports are listening and the process associated with that port.
In the below example, the output shows the correct port association (nginx).
$ netstat -plnt | grep ':443'
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 10219/nginx
$ netstat -plnt | grep ':80'
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10219/nginx
tcp 0 0 :::8081 :::* LISTEN 55274/java
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 55274/java
tcp 0 0 :::8009 :::* LISTEN 55274/java
If there is another process associated with port 80 and port 443 then this may be the root cause.
In the below example the httpd process is using ports 80 and 443:
$ netstat -plnt | grep ':80'
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7970/httpd
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 7934/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 7934/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 7934/java
$ netstat -plnt | grep ':443'
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 7970/httpd
In order to fix the issue we need to kill the process in question.
- Obtain the process id (PID) for the httpd process (command below assumes you are logged in as the root user):
$ pidof httpd
- Check the status of the httpd service (assuming you are logged in as root):
$ service httpd status
- If it's running, you can then try to stop the httpd service:
$ service httpd stop
- and kill the httpd process:
$ kill -9 <pid> (where the pid is the process ID shown for the ''pidof httpd'' command)
- Check to make sure the process has been killed and it's not using the associated ports i.e. 443 and 80 (below commands assume you are logged in as the 'root' user).
$ lsof -i tcp:443
$ lsof -i tcp:80
- If the httpd process is no longer using those ports, try restarting the Columbus services.
$ sudo /etc/init.d/columbus restart
$ sudo /etc/init.d/columbus status
(remove ''sudo'' if logged in as root)
Nginx should now startup and the web component should also be shown as [ OK ]
Comments
0 comments
Article is closed for comments.