This is a document to help system administrators who need to understand what commands in systemd replace their old workflow in SysVinit.
Note that the 'service' and 'chkconfig' commands will continue to work as expected in the systemd world, this guide is how to use the native systemctl calls that are being made by those commands.
Services
SystemVinit Command | Systemd Command | Notes |
---|---|---|
ls /etc/rc.d/init.d/ | ls /lib/systemd/system/*.service /etc/systemd/system/*.service | Used to list the services that can be started or stopped |
chkconfig frobozz | systemctl is-enabled frobozz.service | Used to check whether a service is configured to start or not in the current environment. |
chkconfig frobozz --list | ls /etc/systemd/system/*.wants/frobozz.service | Used to list what levels this service is configured on or off |
chkconfig frobozz --level 345 on | for runlevel in multi-user graphical ; do ln -s /lib/systemd/system/frobozz.service /etc/systemd/system/$runlevel.target.wants/ && systemctl daemon-reload | Turn the service on for the next reboot. Note: systemd doesn't have a separate "runlevel 4" |
chkconfig frobozz --level 345 off | for runlevel in multi-user graphical ; do rm /etc/systemd/system/$runlevel.target.wants/frobozz.service && systemctl daemon-reload | Turn the service off for the next reboot. Note: systemd doesn't have a separate "runlevel 4" |
service frobozz start | systemctl start frobozz.service (OR service frobozz start) | Used to start a service (not reboot persistent) |
service frobozz stop | systemctl stop frobozz.service (OR service frobozz stop) | Used to stop a service (not reboot persistent) |
service frobozz restart | systemctl restart frobozz.service (OR service frobozz restart) | Used to stop and then start a service |
service frobozz reload | systemctl reload frobozz.service (OR service frobozz reload) | When supported, reloads the config file without interrupting pending operations. |
service frobozz condrestart | systemctl reload-or-restart frobozz.service (OR systemctl condrestart frobozz.service OR service frobozz condrestart) | When supported, restarts if the service is already running. |
service frobozz status | systemctl status frobozz.service | Tells whether a service is currently running. |
Runlevels
runlevels are used with telinit and on the kernel command line in SystemVinit. These traditional ways of switching runlevels still work with systemd, but additionally, the following can be used instead.
SystemVinit Runlevel | Systemd Target | Notes |
---|---|---|
0 | runlevel0.target, poweroff.target | Halt the system. |
1, s, single | runlevel1.target, rescue.target | Single user mode. |
2, 4 | runlevel2.target, runlevel4.target, multi-user.target | User-defined/Site-specific runlevels. By default, identical to 3. |
3 | runlevel3.target, multi-user.target | Multi-user, non-graphical. Users can usually login via multiple consoles or via the network. |
5 | runlevel5.target, graphical.target | Multi-user, graphical. Usually has all the services of runlevel 3 plus a graphical login. |
6 | runlevel6.target, reboot.target | Reboot |
emergency | emergency.target | Emergency shell |
Changing runlevels:
SystemVinit Command | Systemd Command | Notes |
---|---|---|
telinit 3 | systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) | Change to multi-user run level. |
sed s/^id:.*:initdefault:/id:3:initdefault:/ | ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target | Set to use multi-user runlevel on next reboot. |