Alpine Linux is renowned for its minimalist design, small footprint, and robust security. It’s an excellent choice for containers, embedded systems, and even lightweight servers. However, if you’re coming from a systemd-centric distribution like Ubuntu or Fedora, managing services on Alpine might feel a little different at first.
Alpine Linux utilizes OpenRC as its init system, a dependency-based system that’s both efficient and straightforward. In this article, we’ll dive into the essentials of starting, stopping, restarting, and checking the status of services on Alpine Linux, complete with practical examples.
The Basics: rc-service and service
The primary command for interacting with services in OpenRC is rc-service. You’ll often see service used as an alias for rc-service, which provides a more familiar syntax for those accustomed to other init systems. Both achieve the same result.
Let’s break down the common operations:
1. Starting a Service
To initiate a service, you use the start command.
Syntax: sudo rc-service <service_name> start
orsudo service <service_name> start
Example: Starting the Nginx web server
First, ensure Nginx is installed. If not: sudo apk add nginx
Now, let’s start it:
sudo rc-service nginx startYou should see output similar to:* Starting nginx ... [ ok ]
2. Stopping a Service
To halt a running service, use the stop command.
Syntax:sudo rc-service <service_name> stop
orsudo service <service_name> stop
Example: Stopping the Nginx web server
sudo rc-service nginx stopOutput:* Stopping nginx ... [ ok ]
3. Restarting a Service
If you’ve made configuration changes to a service, or simply want to refresh its state, restart is your go-to command.
Syntax:sudo rc-service <service_name> restart
orsudo service <service_name> restart
Example: Restarting the Nginx web server
sudo rc-service nginx restartOutput:* Stopping nginx ...                                                      [ ok ]
* Starting nginx ...                                                      [ ok ]
4. Checking Service Status
To verify if a service is running and to get some basic information about its state, use the status command.
Syntax:rc-service <service_name> status
orservice <service_name> status
Example: Checking the status of Nginx
rc-service nginx statusIf Nginx is running, you’ll see something like: * status: started If it’s not running: * status: stopped
5. Enabling Services at Boot
For services you want to start automatically when your Alpine system boots up, you need to “add” them to the default runlevel. OpenRC uses runlevels (similar to systemd targets) to define which services should be active. The most common runlevel for general operation is default.
Syntax:sudo rc-update add <service_name> default
Example: Enabling Nginx to start on boot
sudo rc-update add nginx defaultOutput: * rc-update: adding nginx to default
6. Disabling Services at Boot
If you no longer want a service to start automatically, you can “delete” it from the runlevel.
Syntax:sudo rc-update del <service_name> default
Example: Disabling Nginx from starting on boot
sudo rc-update del nginx defaultOutput: * rc-update: deleting nginx from default
7. Listing All Services
To see a list of all available services on your system, you can use rc-service without any arguments, or with the -l flag.
Syntax:rc-service -l
or simplyrc-service
This will provide a comprehensive list of all installed services and their current status.
Beyond the Basics: Understanding Runlevels
While default is where most of your services will reside, OpenRC supports other runlevels like sysinit, boot, shutdown, and custom ones. For most users, sticking to default for general-purpose services is sufficient. You can view the services enabled for a specific runlevel using:
rc-update show default
Conclusion
Managing services on Alpine Linux with OpenRC is a straightforward and efficient process once you understand the core commands. The rc-service (or service) and rc-update utilities provide all the tools you need to control the lifecycle of your applications. Its simplicity and speed are just another reason why Alpine Linux continues to be a favorite for those who value a lean and powerful operating system.
