On a systemd system, which command sets the static hostname persistently by writing it to /etc/hostname and applying it to the running system at once?
LPIC-1 Exam 102-500, objective 109. Networking fundamentals 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 hostname -s myserver
Wrong. -s asks the hostname command to print the short name; it is a display option, not a way to set the name, and plain `hostname NAME` changes only the running kernel value until reboot.
Not correct echo myserver > /etc/hosts
Wrong, and destructive. This overwrites the static host table, removing the localhost entries. /etc/hosts maps addresses to names; it is not where the system's own hostname is stored.
Correct hostnamectl set-hostname myserver
Correct. hostnamectl writes the static hostname to /etc/hostname and updates the kernel hostname immediately, so no reboot is needed.
Not correct uname -n myserver
Wrong. uname reports system information and -n prints the current node name. It has no ability to change anything.
Why
The hostname exists in two places: the value the running kernel holds (shown by `hostname` or `uname -n`, set for this boot by `hostname NAME`) and the persistent value in /etc/hostname read at boot. hostnamectl updates both. It is good practice to also list the hostname beside the machine's address in /etc/hosts so that the name resolves even without DNS.
Where this comes from
- Cited
- LPI exam objective 109.2
- What it says
- Set and query the system hostname.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 109 and space the ones you get wrong.