How can I get the process with the biggest pid using ps?

  • May I ask what you are using this for? Some systems (OpenBSD) uses random PID allocation, and all Unixes resort to wraparound and PID reuse when the maximum allowed PID has been allocated. If you want to figure out the most recently allocated PID, then your question needs rephrasing. – Kusalananda Jan 15 at 16:03

This doesn't use ps, but parsing ps is likely to be difficult (not to mention non-portable). This ought to be easier (and at least a bit more portable):

( cd /proc; printf "%s\n" *; ) | sort -n | tail -n 1

That looks for the highest numbered directory inside /proc, which works because on many Unix systems there's one /proc/### directory per pid that contains information about that process.

ps -Ao pid= | sort -rn | head -n 1

would be POSIX.

On Linux, process ids share the same namespace as the thread ids. There, you can do:

ps -LAo tid= | sort -rn | head -n 1

To get the highest thread or process id number.

  • Forgot about -o - that definitely makes it easier to parse ps than I was thinking. But you missed -e, since I'm assuming the OP wants all processes on the machine. – godlygeek Jul 1 '14 at 16:27
  • @godlygeek, yes I did add the -e while you were writing your comment. – Stéphane Chazelas Jul 1 '14 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.