Compatibility with SysV

Since systemd v260, support for SysV functionality has been removed. The documentation below is preserved for historical reference only.

A few interfaces are optionally kept for backward compatibility. When systemd is compiled with the -Dcompat-sysv-interfaces=true setting, legacy interfaces are provided, e.g. the runlevelX.target aliases, and lock directories under /var and /run. This option may be extended to cover other deprecated interfaces in the future.

Pre v260 state

systemd provides a fair degree of compatibility with the behavior exposed by the SysV init system as implemented by many distributions. Compatibility is provided both for the user experience and the SysV scripting APIs. However, there are some areas where compatibility is limited due to technical reasons or design decisions of systemd and the distributions. All of the following applies to SysV init scripts handled by systemd, however a number of them matter only on specific distributions. Many of the incompatibilities are specific to distribution-specific extensions of LSB/SysV init.