Finding the PID of the process using a specific port?
I am installing hadoop on my Ubuntu system. When I start it, it reports that port 9000 is busy.
netstat -nlp|grep 9000
to see if such a port exists and I got this:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
But how can I get the PID of the process which is holding it?
Answered on SU – Finding the process that is using a certain port in Linux
On Linux, you must be root or the owner of the process to get the information you desire. As such, for processes running as another user, prepending
sudois most of what you need. In addition to that, on modern Linux systems,
ssis tool to use to do this:
$ sudo ss -lptn 'sport = :80' State Local Address:Port Peer Address:Port LISTEN 127.0.0.1:80 *:* users:(("nginx",pid=125004,fd=12)) LISTEN ::1:80 :::* users:(("nginx",pid=125004,fd=11))
You can also use the same invocation you're currently using, but remember to
$ sudo netstat -nlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
You can also use lsof:
$ sudo lsof -n -i :80 | grep LISTEN nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)
Note: under OSX, the `-p` option is for protocol rather than process. See this question
@AdamB Unless a Mac user arrived here searching for `Finding the PID of the process using a specific port`
This answer would probably be improved by putting the need to `sudo` at the top.
what does it mean when the process id field is missing on certain ports? (is it some stupid systemd thing?)
Chris Down, I think it isn't ethical to copy paste other's answers in your answer. Originally your answer was about `netstat` only. You have included usage of `lsof` and `ss` commands from other answers and comments. At least mention the author of the answer when you extend your answer with options from other answers.
@Alexandr Huh? This answer doesn't "copy paste others' answers". As with all of my answers, when they are upvoted or otherwise I get a notification about them, I occasionally take a look and realise that they could be improved, which is totally normal, since up to 2014 I used to answer extremely frequently here. In this case, for example, `ss` is not deprecated, whereas other tools are, so it improves the answer to add it. With respect, I don't really need to read the other answers here to know about the existence of these tools, considering I use these and other staple Linux tools every day.
@Chris Down , I disagree here with you. You can look just one question below your question to see that another answer already have the option which you want to include into your answer. As a result, other answers are becoming redundant and can be removed because you just included all the information from other answers into your answer. You didn't improve your answer, you just included all the options from other answers into your answer. If you want to add something specific to these options you can edit others' answers.
@Alexandr The point is that these updates don't derive from other answers, they're just updates that happen to relate to other answers. Where updates are a *result* of another answer, as opposed to being a coincidence, it's properly attributed, as with Heinzi here for example. You can't require attribution just because your answer coincidentally happens to contain a subset of information, when that information wasn't derived from your answer. If multiple discovery is likely in academia, it's infinitely more likely in simple things like this.
@Chris Down , If you want to add some extra information (which you didn't) you can edit the related answer instead of including the whole answer into your answer. Can you tell me what is the point of including `lsof` example if Vitaliy's answer already has this option and his whole answer is based on this option? What is the point of including `ss` option if my answer already have this option and is based specifically for this option only? Also, below my answer there is the comment which is identical to your example (except the port).
If your answer would had `ss` option I wouldn't create my answer which lists `ss` option. I bet that Vitaliy also wouldn't create the answer to list `lsof` option if your answer would have it. But you included other options into your answer and made other answers worse then your answer just because your answer contains all the information that other answers have.
Also, notice, I don't tell that you don't know about existance of these tools. I tell that you including others' answers information into your answer. You should improve the answer which is related to specific option and don't just include that option into your answer because you want your answer to be the best one. It would be fair if your answer wouldn't include information options from other answers which were posted much before your edits. I.e. based on your edits and answers to this question I can tell that your answer must not include `ss` and `lsof` options.