which program is this port belongs to ?

lsof -i tcp:80
Sometimes you need to use a port that is already opened by some program , and you don't know who to "kill" for it to release - so, now you do !
Sample Output
httpd       501 apache    4u  IPv6 7656077       TCP *:http (LISTEN)
httpd       502 apache    4u  IPv6 7656077       TCP *:http (LISTEN)
httpd       503 apache    4u  IPv6 7656077       TCP *:http (LISTEN)

By: ar_levi
2009-04-16 14:51:53

2 Alternatives + Submit Alt

What Others Think

You can also add "-p" to netstat. Still a useful tip.
amosshapira · 630 weeks and 1 day ago
this seems to work backwards? when I run it I get up some instances of opera, but no apache which runs a webserver on port 80....
Svish · 629 weeks and 6 days ago
Opera doesn't listen on port 80 .... lsof is a command to check for opened files (List opened files) , and i used it to check what file/service is locking my port on listening. that because i didn't see any service that might match that port .. and there were too many of them to start searching one by one about what they do.. it also displaying the user that is using it ... (if you have multipul users in your pc / server) and if some script is listening on some port ( say perl script on port 23 telnet )- the command will show you the name of the script that is using this port at the very moment.
ar_levi · 629 weeks and 4 days ago
Or if you run Solaris and don't want to install lsof: pfiles $(ls /proc) 2>/dev/null | nawk '{if(/^[0-9]/){x=$1;sub(/:/,"",x)}if(/port: 80/){y=x}}END{print y}'
unixmonkey3280 · 629 weeks and 2 days ago
I know Opera doesn't listen on port 80. It is connected to port 80 elsewhere. And that was my point. I thought your command would listen the programs I was running that was currently listening on a certain port. Like Apache, which currently is doing exactly that. But instead your command listed some lines for Opera and what ip addresses it was connected to a port 80.
Svish · 629 weeks and 2 days ago
I have the same problem as @Svish. Running lsof -i tcp:80 on Ubuntu 11.04 only reports network files that are connected to remote machines on port 80. If I try lsof -i 6tcp:80 it reports nothing. Trying netstat -t -l -n -p reveals: tcp 0 0* LISTEN - with no program associated with whatever is listening on port 80. Apache version: Server version: Apache/2.2.17 (Ubuntu)
tamouse · 504 weeks and 3 days ago
Further reading reveals that this command must be run as root to report the information wanted: http://www.commandlinefu.com/commands/view/144/find-process-associated-with-a-port#comment
tamouse · 504 weeks and 3 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: