A shell has been running a data import for some time. You run `renice 10 -p <shell PID>` on the shell itself, but the import process it started earlier keeps running at nice value 0. Why?

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

Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.

Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.

How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.

The options

Correct A process inherits its nice value from its parent at the moment it is created, and renice changes only the processes it is given.

Correct. Inheritance happens once, at fork. Later changes to the parent are not propagated to children that already exist.

Not correct renice may only be applied to the leader of a process group, so the command silently did nothing.

Wrong. renice acts on any process the caller is allowed to touch; -g exists precisely because a group is not the default target.

Not correct The child's nice value is reset to 0 whenever it calls exec.

Wrong. Niceness survives exec; that is exactly why `nice -n 10 command` works at all.

Not correct Nice values above 0 apply only to processes that are competing for CPU, so an I/O-bound import ignores them.

Wrong. The value is set regardless; it only becomes visible in behaviour when there is CPU contention, but ps would still report the new number.

Why

Niceness is a per-process attribute copied to a child at fork and preserved across exec, so it behaves like an inherited default rather than a shared setting. To catch processes that are already running, name them: renice -p for individual PIDs, renice -g for a whole process group, or renice -u for everything a user owns. Renicing the parent only affects children started after the change.

Where this comes from

Cited
manual page getpriority(2)

Practise this

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

Practise LPIC-1 Exam 101-500

More questions on this objective

All questions on GNU and Unix commands

Practise LPIC-1 Exam 101-500