You know only the program name and want to terminate every running process called `httpd`. Which command does that in one step?

LPIC-1 Exam 101-500, objective 103. GNU and Unix commands medium

Draft — not checked yet. This question was written from the published exam objectives and cites the clause it comes from, but nobody has yet read it against that clause and signed for it.

It is kept out of search results and out of mock exams until they have. Read the source below before you take the answer as settled.

The options

Not correct kill httpd

Wrong. kill expects process IDs (or job specs like %1), not names. Given a name it reports an invalid argument rather than killing anything.

Correct killall httpd

Correct. killall takes a process name and signals every process whose name matches exactly, defaulting to SIGTERM.

Not correct pgrep httpd

Wrong. pgrep only searches the process table and prints the matching PIDs; it sends no signal. Its signalling sibling is pkill.

Not correct ps httpd

Wrong. ps reports process status. It does not signal anything, and a bare name is not even a valid ps selector.

Why

killall signals processes by name, pkill signals processes by pattern, kill signals by PID. Note the difference between the two by-name tools: killall requires the name to match exactly, while pkill matches its pattern against the name as a regular expression and will happily hit `httpd-worker` too. (That exact-match rule is the behaviour of GNU killall from psmisc, the version Linux distributions ship.)

Where this comes from

Cited
LPI exam objective 103.5
What it says
Use killall and pkill to signal processes selected by name.

Practise this

Reading one question is not practice. The trainer will draw a set from objective 103 and space the ones you get wrong.

Practise LPIC-1 Exam 101-500