Skip to main content

Command Palette

Search for a command to run...

Day 14: Linux Process Troubleshooting | 100 Days of DevOps

Updated
3 min read
R
I’m currently working in DevOps and documenting my learning journey along the way. From CI/CD pipelines to cloud and containers, I’m exploring how modern systems are built and deployed. This blog is where I share what I learn, break down concepts in simple terms, and track my progress. Learning one concept at a time, and trying to apply it practically.

Content:

Today I worked on troubleshooting an Apache service failure reported by a monitoring system in a production-like environment. The task was to identify the faulty application server and ensure that the Apache service was running properly on all servers using the required port 8089.

During the investigation, I discovered that the issue was caused by a process conflict, where another service was already using the required port. This task gave me practical exposure to real-world Linux process troubleshooting.


What I Learned

Through this task, I understood:

  • How to check service status using systemctl

  • How to identify running processes using specific ports

  • How to troubleshoot and resolve port conflicts

  • Importance of process-level debugging in Linux systems


Steps I Followed :

1. Connected to Application Servers

ssh tony@stapp01
ssh steve@stapp02
ssh banner@stapp03

Logged into all app servers to identify the faulty host.


2. Checked Apache Service Status

systemctl status httpd
  • stapp02 and stapp03 → Apache was running

  • stapp01 → Apache service failed


3. Analyzed the Error Logs

Error observed:

Address already in use

This indicated a port conflict issue.


4. Checked Which Process is Using Port 8089

sudo ss -tulnp | grep 8089

Found that:

sendmail was using port 8089

5. Stopped the Conflicting Process

sudo systemctl stop sendmail

6. Disabled the Service

sudo systemctl disable sendmail

Prevented the service from restarting automatically.


7. Started Apache Service

sudo systemctl start httpd

8. Enabled Apache Service

sudo systemctl enable httpd

9. Verified Apache is Running on Port 8089

ss -tulnp | grep 8089

Confirmed that Apache is successfully listening on port 8089.


My Understanding

This task helped me understand how Linux processes can directly impact service availability. By identifying which process was using a required port, I was able to resolve the issue efficiently and restore the service.


What I Found Interesting

It was interesting to see how troubleshooting at the process level can quickly reveal the root cause of failures. A simple port conflict from another service like sendmail can completely stop a critical service like Apache.


📌 Full notes: GitHub link