mirror of
https://pagure.io/fedora-docs/quick-docs.git
synced 2024-12-01 07:39:48 +00:00
172 lines
6.4 KiB
Text
172 lines
6.4 KiB
Text
= SysVinit to Systemd Cheatsheet
|
|
|
|
'''
|
|
|
|
[IMPORTANT]
|
|
======
|
|
|
|
This page was automatically converted from https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
|
|
|
|
It is probably
|
|
|
|
* Badly formatted
|
|
* Missing graphics and tables that do not convert well from mediawiki
|
|
* Out-of-date
|
|
* In need of other love
|
|
|
|
Please fix it, remove this notice, and then add to `_topic_map.yml`
|
|
|
|
Pull requests accepted at https://pagure.io/fedora-docs/quick-docs
|
|
|
|
Once that is live, go to the original wiki page and add an `{{old}}`
|
|
tag, followed by a note like
|
|
|
|
....
|
|
{{admon/note|This page has a new home!|
|
|
This wiki page is no longer maintained. Please find the up-to-date
|
|
version at: https://docs.fedoraproject.org/whatever-the-url
|
|
}}
|
|
....
|
|
|
|
======
|
|
|
|
'''
|
|
|
|
|
|
This is a document to help system administrators who need to understand
|
|
what commands in systemd replace their old workflow in sysvinit. If you
|
|
want general information on systemd, refer to systemd.
|
|
|
|
[[services]]
|
|
Services
|
|
~~~~~~~~
|
|
|
|
Note that all recent versions of systemctl assume the '.service' if left
|
|
off. So, 'systemctl start frobozz.service' is the same as 'systemctl
|
|
start frobozz'
|
|
|
|
[cols=",,",options="header",]
|
|
|=======================================================================
|
|
|Sysvinit Command |Systemd Command |Notes
|
|
|service frobozz start |systemctl start frobozz |Used to start a service
|
|
(not reboot persistent)
|
|
|
|
|service frobozz stop |systemctl stop frobozz |Used to stop a service
|
|
(not reboot persistent)
|
|
|
|
|service frobozz restart |systemctl restart frobozz |Used to stop and
|
|
then start a service
|
|
|
|
|service frobozz reload |systemctl reload frobozz |When supported,
|
|
reloads the config file without interrupting pending operations.
|
|
|
|
|service frobozz condrestart |systemctl condrestart frobozz |Restarts if
|
|
the service is already running.
|
|
|
|
|service frobozz status |systemctl status frobozz |Tells whether a
|
|
service is currently running.
|
|
|
|
|ls /etc/rc.d/init.d/ |systemctl (or) systemctl list-unit-files
|
|
--type=service (or) +
|
|
ls /lib/systemd/system/*.service /etc/systemd/system/*.service |Used to
|
|
list the services that can be started or stopped +
|
|
Used to list all the services and other units
|
|
|
|
|chkconfig frobozz on |systemctl enable frobozz |Turn the service on,
|
|
for start at next boot, or other trigger.
|
|
|
|
|chkconfig frobozz off |systemctl disable frobozz |Turn the service off
|
|
for the next reboot, or any other trigger.
|
|
|
|
|chkconfig frobozz |systemctl is-enabled frobozz |Used to check whether
|
|
a service is configured to start or not in the current environment.
|
|
|
|
|chkconfig --list |systemctl list-unit-files --type=service (or) ls
|
|
/etc/systemd/system/*.wants/ |Print a table of services that lists which
|
|
runlevels each is configured on or off
|
|
|
|
|chkconfig --list | grep 5:on |systemctl list-dependencies
|
|
graphical.target |Print a table of services that will be started when
|
|
booting into graphical mode
|
|
|
|
|chkconfig frobozz --list |ls
|
|
/etc/systemd/system/*.wants/frobozz.service |Used to list what levels
|
|
this service is configured on or off
|
|
|
|
|chkconfig frobozz --add |systemctl daemon-reload |Used when you create
|
|
a new service file or modify any configuration
|
|
|=======================================================================
|
|
|
|
Note that all /sbin/service and /sbin/chkconfig lines listed above
|
|
continue to work on systemd, and will be translated to native
|
|
equivalents as necessary. The only exception is chkconfig --list.
|
|
|
|
[[runlevelstargets]]
|
|
Runlevels/targets
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Systemd has a concept of _targets_ which serve a similar purpose as
|
|
runlevels but act a little different. Each _target_ is named instead of
|
|
numbered and is intended to serve a specific purpose. Some _targets_ are
|
|
implemented by inheriting all of the services of another _target_ and
|
|
adding additional services to it. There are systemd __target__s that
|
|
mimic the common sysvinit runlevels so you can still switch __target__s
|
|
using the familiar `telinit RUNLEVEL` command. The runlevels that are
|
|
assigned a specific purpose on vanilla Fedora installs; 0, 1, 3, 5, and
|
|
6; have a 1:1 mapping with a specific systemd _target_. Unfortunately,
|
|
there's no good way to do the same for the user-defined runlevels like 2
|
|
and 4. If you make use of those it is suggested that you make a new
|
|
named systemd _target_ as `/etc/systemd/system/$YOURTARGET` that takes
|
|
one of the existing runlevels as a base (you can look at
|
|
`/lib/systemd/system/graphical.target` as an example), make a directory
|
|
`/etc/systemd/system/$YOURTARGET.wants`, and then symlink the additional
|
|
services that you want to enable into that directory. (The service unit
|
|
files that you symlink live in `/lib/systemd/system`).
|
|
|
|
[cols=",,",options="header",]
|
|
|=======================================================================
|
|
|Sysvinit 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:
|
|
|
|
[cols=",,",options="header",]
|
|
|=======================================================================
|
|
|Sysvinit 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.
|
|
|=======================================================================
|
|
|
|
Kernel Options:
|
|
|
|
The above systemd targets can be used when booting. At the GRUB menu,
|
|
edit the selection to add "systemd.unit=__target__" (without the
|
|
double-quotation marks) as a kernel option where _target_ is one of the
|
|
above. (For example, "rescue.target".)
|
|
|
|
Tip: the ".target" extention is optional. The "systemd.unit=rescue"
|
|
kernel option works the same as "systemd.unit=rescue.target".
|
|
'''
|
|
|
|
See a typo, something missing or out of date, or anything else which can be
|
|
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.
|