How to Identify which process keeps port busy on android / Linux ?

Lets say you are trying to do something with UPNP which reserves port 1900 for all of its applications.. Now if you have some other application / process running already which is using this port and when you developed / installed your application.. there are higher chances that your application will not work as expected and will either return with some random errors or complain about being the respective port as busy.

Now, in this scenario the first thing we have to identify is which is the another application / process is using the same port which we intend use.

For the same, since we intend to identify an application using port, we will use a Linux/Android tool “lsof” along with -i option which enables us to filter the results related to internet/ports.

$ lsof -i
java      6104 devlab   14u  IPv6 487938      0t0  UDP *:1900 

As we can see above, the result of “lsof -i” informed us that there is a command “java” whose process id (pid) is 6104 is using UDP port 1900.

Now, lets get some more information about this process to identify which is the exact command or application is using this port. For the same, we will use standard process identification command “ps -ax” for ubuntu / Linux.

$ ps -ax | grep 6104
 6104 pts/8    Sl+    0:01 java DatagramReceiverServer

On ubuntu, you can also use “netstat” command as, below

$ sudo netstat -nap | grep 1900
udp6       0      0 :::1900                 :::*                              6104/java

NOTE: for our demonstration, we had modified from “JAVA DatagramSocket Client and Server Example” to run the server which can listen on port 1900.

For Android, use below command for process identification

$ ps -A | grep 6104

As another example, lets listen on same port 1900 as a TCP socket using netcat “nc” command as,

$ nc -l 1900

Now, if we check which are the apps using 1900 port using lsof, it returns as below,

$ lsof -i | grep 1900
java      6104 devlab   14u  IPv6 487938      0t0  UDP *:1900 
nc        6794 devlab    3u  IPv4 688692      0t0  TCP *:1900 (LISTEN)
$ ps -ax | grep 6794
 6794 pts/11   S+     0:00 nc -l 1900

here, as we can see, using process id, 6794 we could identify exact command / application details.


Subscribe with Valid Email Id to receive updates in Inbox. ( Secured by Google FeedBurner )


1 thought on “How to Identify which process keeps port busy on android / Linux ?”

Leave a Comment

Android Android Applications Android Build system Android Commands Application Libraries Application Stack / User Interface Bash / Shell Scripts Bluetooth driver Cloud Technologies Commands and Packages Compilation Content Management System Core Kernel C Programs Development & Build Development, Debugging and Performance Tools Development Environment Setup Django & REST Api Errors & Failures Git Hardware Platforms HTML JAVA Programs Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL Multimedia Audio, Video, Images NDK / Middleware / HAL OS Concepts PHP Programming Languages Scripting and Automation Search Engine Optimisation ( SEO ) Social Media Source Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Web design and development Website Hosting Wordpress Yocto / Bitbake / Openembedded