Bird
Raised Fist0
Linux CLIscripting~5 mins

systemctl for service management in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Managing services on a Linux system can be confusing without the right tool. systemctl helps you start, stop, and check the status of services easily, so your programs run when you want them to.
When you want to start a web server so your website is available.
When you need to stop a service that is causing problems.
When you want to check if a service like SSH is running before connecting remotely.
When you want a service to start automatically when the computer boots.
When you want to restart a service after changing its configuration.
Commands
This command starts the nginx web server service immediately so it begins running.
Terminal
sudo systemctl start nginx
Expected OutputExpected
No output (command runs silently)
This command shows the current status of the nginx service, including if it is running or stopped.
Terminal
sudo systemctl status nginx
Expected OutputExpected
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-06-07 10:00:00 UTC; 2min ago Main PID: 1234 (nginx) Tasks: 3 (limit: 4915) Memory: 5.0M CGroup: /system.slice/nginx.service ├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─1235 nginx: worker process └─1236 nginx: worker process
This command sets nginx to start automatically every time the system boots up.
Terminal
sudo systemctl enable nginx
Expected OutputExpected
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
This command stops the nginx service immediately, so it no longer runs.
Terminal
sudo systemctl stop nginx
Expected OutputExpected
No output (command runs silently)
This command stops and then starts the nginx service again, useful after changing its settings.
Terminal
sudo systemctl restart nginx
Expected OutputExpected
No output (command runs silently)
Key Concept

If you remember nothing else from systemctl, remember: use start, stop, status, enable, and restart to control services easily.

Common Mistakes
Running systemctl commands without sudo.
Most service management commands require administrative rights and will fail without sudo.
Always prefix systemctl commands with sudo unless you are logged in as root.
Trying to start a service that is not installed.
systemctl cannot start services that do not exist, resulting in an error.
Check if the service is installed or available before starting it.
Forgetting to enable a service if you want it to start on boot.
The service will run now but will not start automatically after reboot.
Use 'sudo systemctl enable servicename' to make it start on boot.
Summary
Use 'sudo systemctl start servicename' to start a service immediately.
Check service status with 'sudo systemctl status servicename'.
Enable a service to start on boot with 'sudo systemctl enable servicename'.
Stop and restart services with 'sudo systemctl stop servicename' and 'sudo systemctl restart servicename'.

Practice

(1/5)
1. What does the command systemctl start nginx do on a Linux system?
easy
A. It disables the nginx service from starting at boot.
B. It stops the nginx service.
C. It shows the status of the nginx service.
D. It starts the nginx service immediately.

Solution

  1. Step 1: Understand the start action in systemctl

    The start command tells systemctl to begin running the specified service immediately.
  2. Step 2: Apply to nginx service

    Using systemctl start nginx will start the nginx service right away, without affecting boot settings.
  3. Final Answer:

    It starts the nginx service immediately. -> Option D
  4. Quick Check:

    start means run service now [OK]
Hint: Start means run the service now, not stop or status [OK]
Common Mistakes:
  • Confusing start with stop or restart
  • Thinking start changes boot behavior
  • Using start to check status
2. Which of the following is the correct syntax to enable a service named httpd to start automatically at boot?
easy
A. systemctl enable start httpd
B. systemctl httpd enable
C. systemctl enable httpd
D. systemctl start enable httpd

Solution

  1. Step 1: Identify the correct command structure for enabling services

    The correct syntax is systemctl enable <service-name> to set a service to start at boot.
  2. Step 2: Match the syntax with the httpd service

    Using systemctl enable httpd correctly enables the httpd service at boot time.
  3. Final Answer:

    systemctl enable httpd -> Option C
  4. Quick Check:

    enable <service> sets boot start [OK]
Hint: Enable command is followed directly by service name [OK]
Common Mistakes:
  • Adding extra words like 'start' with enable
  • Wrong order of commands
  • Using start instead of enable for boot
3. What will be the output of the command systemctl status sshd if the SSH service is running?
medium
A. Active: active (running) since [date and time]
B. Failed to start sshd.service: Unit not found.
C. Inactive (dead)
D. No output is shown.

Solution

  1. Step 1: Understand what systemctl status shows

    This command displays the current state of the service, including if it is running or stopped.
  2. Step 2: Interpret the output for a running sshd service

    If sshd is running, the output includes a line like Active: active (running) since ... showing it is up.
  3. Final Answer:

    Active: active (running) since [date and time] -> Option A
  4. Quick Check:

    Status shows running state if active [OK]
Hint: Look for 'Active: active (running)' in status output [OK]
Common Mistakes:
  • Expecting no output when service runs
  • Confusing 'inactive' with running
  • Thinking error means service is running
4. You run systemctl start apache2 but get the error: Failed to start apache2.service: Unit apache2.service not found. What is the most likely cause?
medium
A. The service name is incorrect or does not exist.
B. The apache2 service is already running.
C. You need to use restart instead of start.
D. You must run the command without sudo.

Solution

  1. Step 1: Analyze the error message

    The error says the unit (service) apache2.service was not found, meaning systemctl cannot locate it.
  2. Step 2: Identify the cause

    This usually means the service name is wrong or the service is not installed on the system.
  3. Final Answer:

    The service name is incorrect or does not exist. -> Option A
  4. Quick Check:

    Unit not found means wrong or missing service [OK]
Hint: Check service name spelling if 'Unit not found' error appears [OK]
Common Mistakes:
  • Assuming service is running despite error
  • Trying restart instead of start without checking
  • Running without sudo causing permission error
5. You want to ensure the docker service starts automatically on boot and is currently running. Which two commands should you run in order, to achieve this?
hard
A. systemctl enable docker; systemctl status docker
B. systemctl start docker; systemctl enable docker
C. systemctl restart docker; systemctl disable docker
D. systemctl stop docker; systemctl enable docker

Solution

  1. Step 1: Understand the goal

    We want to ensure the docker service is currently running and starts automatically on boot.
  2. Step 2: Choose commands to enable boot start and ensure running

    Running systemctl start docker ensures the service is running (safe if already running), then systemctl enable docker sets it to start at boot.
  3. Final Answer:

    systemctl start docker; systemctl enable docker -> Option B
  4. Quick Check:

    Start first, then enable for boot start [OK]
Hint: Start service first, then enable it for boot [OK]
Common Mistakes:
  • Enabling before starting service
  • Stopping service when wanting it running
  • Disabling service by mistake
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard