Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to exit a process using the command line, but I can't recall the command to look up the process's ID. Does anyone know it?

share|improve this question

6 Answers 6

up vote 10 down vote accepted

The command to find out a process's id (given its name) is pidof. However since your intention is to kill the process, there are better/easier ways than using pidof to find its pid first:

Assuming the process you want to kill is uniquely identified by its name (or you want to kill all the processes with that name), you don't need to know its pid. You can simply do killall processname.

If there are multiple processes with the same name, but you only want to kill one of them, using pidof won't help you much, because it will give you the pids, but it won't give you any information to determine which of the pids belongs to the process you actually want to kill.

In this case you can do ps aux | grep processname which will shows all processes with the given name as well as the console they're running on (if applicable) and the arguments they were invoked with, which hopefully allows you to identify the process you're looking for.

If the process opened any X-windows, you can also use xkill to kill (invoke xkill and then click on the window).

share|improve this answer

My favorite is pstree -p | grep $(program_name). This actually greps the process, highlights it and shows the pid in parenthesis.

My next favorite (especially when programming and needing all pids from process) is pgrep -law "". This literally gives you every pid running followed by the application (with absolute path).

This can be reduced to pgrep -lw "" for pid followed by program name or even just pgrep -l for all pids

Of course, you can search for a particular program (or part of a program's) name. (i.e. pgrep -lw firef will probably display something like "4567 firefox").

share|improve this answer
    
Wouldn't pstree -psH $(pgrep prgram_name) be better for the first case? –  muru Sep 18 at 21:57
    
Yeah that works, too. You could make an alias for that. I was just using the $( ) to represent a program's name; I think that typing $(pgrep name) is a little annoying because of the dollar sign, but I think an alias of that could be helpful. –  dylnmc Sep 19 at 14:10

I also had a similar problem. I used pstree -p; this showed me the current running processes including Process IDs.

share|improve this answer
    
interesting command –  jumpnett Apr 26 '13 at 15:34

pidof. Issue man pidof for details.

share|improve this answer

You can run ps -A in the terminal to show all the processes (with their process ID) that are currently running.

share|improve this answer

You should have a look at pgrep and pkill, two very handy and powerful utilities that are found on most Linux and UNIX systems.

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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