diff --git a/man/systemctl.xml b/man/systemctl.xml index bcbd5bf692..0f19508711 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -163,10 +163,9 @@ PATH CONDITION UNIT shown. Produces output similar to LISTEN UNIT ACTIVATES -/dev/initctl systemd-initctl.socket systemd-initctl.service -… -[::]:22 sshd.socket sshd.service kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service +/dev/rfkill systemd-rfkill.socket systemd-rfkill.service +… 5 sockets listed. Note: because the addresses might contains spaces, this output diff --git a/man/systemd.xml b/man/systemd.xml index 94e51fe8d5..88dd158021 100644 --- a/man/systemd.xml +++ b/man/systemd.xml @@ -30,7 +30,6 @@ init OPTIONS - COMMAND @@ -47,13 +46,6 @@ user@.service5 service. - For compatibility with SysV, if the binary is called as init and is not the - first process on the machine (PID is not 1), it will execute telinit and pass all - command line arguments unmodified. That means init and telinit are - mostly equivalent when invoked from normal login sessions. See - telinit8 for more - information. - When run as a system instance, systemd interprets the configuration file system.conf and the files in system.conf.d directories; when run as a @@ -235,14 +227,8 @@ xawf -eo pid,user,cgroup,args is particularly useful to list all processes and the systemd units they belong to.). - systemd is compatible with the SysV init system to a large - degree: SysV init scripts are supported and simply read as an - alternative (though limited) configuration file format. The SysV - /dev/initctl interface is provided, and - compatibility implementations of the various SysV client tools are - available. In addition to that, various established Unix - functionality such as /etc/fstab or the - utmp database are supported. + systemd is compatible with various established Unix functionality such as + /etc/fstab or the utmp database. systemd has a minimal transaction system: if a unit is requested to start up or shut down it will add it and all its @@ -328,32 +314,6 @@ - - - - SysV init scripts directory - - The location of the SysV init script directory - varies between distributions. If systemd cannot find a native - unit file for a requested service, it will look for a SysV - init script of the same name (with the - .service suffix - removed). - - - - - - SysV runlevel link farm directory - - The location of the SysV runlevel link farm - directory varies between distributions. systemd will take the - link farm into account when figuring out whether a service - shall be enabled. Note that a service unit with a native unit - configuration file cannot be started by activating it in the - SysV runlevel link farm. - - @@ -1066,12 +1026,9 @@ 5 Boot into the specified legacy SysV runlevel. - These are equivalent to - systemd.unit=runlevel2.target, - systemd.unit=runlevel3.target, - systemd.unit=runlevel4.target, and - systemd.unit=runlevel5.target, - respectively, and provided for compatibility reasons and to be + 2, 3, and 4 are equivalent to + systemd.unit=multi-user.target; and 5 is equivalent to + systemd.unit=graphical.target, and provided for compatibility reasons and to be easier to type. @@ -1522,16 +1479,6 @@ projects. - - /dev/initctl - - Limited compatibility support for the SysV - client interface, as implemented by the - systemd-initctl.service unit. This is a - named pipe in the file system. This interface is obsolete and - should not be used in new applications. - - /usr/lib/clock-epoch diff --git a/src/shared/unit-file.c b/src/shared/unit-file.c index e20894216b..83a8c45032 100644 --- a/src/shared/unit-file.c +++ b/src/shared/unit-file.c @@ -838,13 +838,14 @@ const char* runlevel_to_target(const char *word) { word = startswith(word, "rd."); if (!word) return NULL; - } - rlmap_ptr = in_initrd() ? rlmap_initrd : rlmap; + rlmap_ptr = rlmap_initrd; + } else + rlmap_ptr = rlmap; - for (size_t i = 0; rlmap_ptr[i]; i += 2) - if (streq(word, rlmap_ptr[i])) - return rlmap_ptr[i+1]; + STRV_FOREACH_PAIR(rl, target, rlmap_ptr) + if (streq(word, *rl)) + return *target; return NULL; } diff --git a/src/test/test-specifier.c b/src/test/test-specifier.c index 7d25969bb0..f2f2f057c1 100644 --- a/src/test/test-specifier.c +++ b/src/test/test-specifier.c @@ -89,25 +89,27 @@ TEST(specifier_printf) { TEST(specifier_real_path) { static const Specifier table[] = { - { 'p', specifier_string, "/dev/initctl" }, - { 'y', specifier_real_path, "/dev/initctl" }, - { 'Y', specifier_real_directory, "/dev/initctl" }, + { 'p', specifier_string, "/dev/fd" }, + { 'y', specifier_real_path, "/dev/fd" }, + { 'Y', specifier_real_directory, "/dev/fd" }, { 'w', specifier_real_path, "/dev/tty" }, { 'W', specifier_real_directory, "/dev/tty" }, {} }; - _cleanup_free_ char *w = NULL; + _cleanup_free_ char *w = NULL, *expected = NULL; int r; r = specifier_printf("p=%p y=%y Y=%Y w=%w W=%W", SIZE_MAX, table, NULL, NULL, &w); - assert_se(r >= 0 || r == -ENOENT); - assert_se(w || r == -ENOENT); - puts(strnull(w)); + if (r < 0) { + ASSERT_ERROR(r, ENOENT); + return (void) log_tests_skipped_errno(r, "/dev/fd and/or /dev/tty do not exist"); + } - /* /dev/initctl should normally be a symlink to /run/initctl */ - if (inode_same("/dev/initctl", "/run/initctl", 0) > 0) - ASSERT_STREQ(w, "p=/dev/initctl y=/run/initctl Y=/run w=/dev/tty W=/dev"); + ASSERT_OK(asprintf(&expected, + "p=/dev/fd y=/proc/"PID_FMT"/fd Y=/proc/"PID_FMT" w=/dev/tty W=/dev", + getpid_cached(), getpid_cached())); + ASSERT_STREQ(w, expected); } TEST(specifier_real_path_missing_file) { diff --git a/src/test/test-unit-name.c b/src/test/test-unit-name.c index fcb61f2ca7..4734a3320f 100644 --- a/src/test/test-unit-name.c +++ b/src/test/test-unit-name.c @@ -840,7 +840,6 @@ TEST(unit_name_from_dbus_path) { test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/polkit_2eservice", 0, "polkit.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2eautomount", 0, "proc-sys-fs-binfmt_misc.automount"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2emount", 0, "proc-sys-fs-binfmt_misc.mount"); - test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/rc_2dlocal_2eservice", 0, "rc-local.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dcryptsetup_2etarget", 0, "remote-cryptsetup.target"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dfs_2dpre_2etarget", 0, "remote-fs-pre.target"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dfs_2etarget", 0, "remote-fs.target"); @@ -935,8 +934,6 @@ TEST(unit_name_from_dbus_path) { test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dfirstboot_2eservice", 0, "systemd-firstboot.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dfsck_2droot_2eservice", 0, SPECIAL_FSCK_ROOT_SERVICE); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dhwdb_2dupdate_2eservice", 0, "systemd-hwdb-update.service"); - test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dinitctl_2eservice", 0, "systemd-initctl.service"); - test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dinitctl_2esocket", 0, "systemd-initctl.socket"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournal_2dcatalog_2dupdate_2eservice", 0, "systemd-journal-catalog-update.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournal_2dflush_2eservice", 0, "systemd-journal-flush.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournald_2daudit_2esocket", 0, "systemd-journald-audit.socket"); @@ -965,7 +962,6 @@ TEST(unit_name_from_dbus_path) { test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudevd_2dkernel_2esocket", 0, "systemd-udevd-kernel.socket"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudevd_2eservice", 0, "systemd-udevd.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2ddone_2eservice", 0, "systemd-update-done.service"); - test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2dutmp_2drunlevel_2eservice", 0, "systemd-update-utmp-runlevel.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2dutmp_2eservice", 0, "systemd-update-utmp.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2duser_2dsessions_2eservice", 0, "systemd-user-sessions.service"); test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dvconsole_2dsetup_2eservice", 0, "systemd-vconsole-setup.service"); diff --git a/tools/command_ignorelist b/tools/command_ignorelist index 50f01c9544..fed0bf052d 100644 --- a/tools/command_ignorelist +++ b/tools/command_ignorelist @@ -359,8 +359,6 @@ systemd.xml ./refsect1[title="Options"]/refsect2[title="Options that duplicate k systemd.xml ./refsect1[title="Options"]/refsect2[title="Options that duplicate kernel command line settings"]/variablelist/varlistentry[term="--default-standard-output="] systemd.xml ./refsect1[title="Directories"]/variablelist[1]/varlistentry[term="System unit directories"] systemd.xml ./refsect1[title="Directories"]/variablelist[2]/varlistentry[term="User unit directories"] -systemd.xml ./refsect1[title="Directories"]/variablelist[3]/varlistentry[term="SysV init scripts directory"] -systemd.xml ./refsect1[title="Directories"]/variablelist[4]/varlistentry[term="SysV runlevel link farm directory"] systemd.xml ./refsect1[title="Signals"]/variablelist/varlistentry[term="SIGTERM"] systemd.xml ./refsect1[title="Signals"]/variablelist/varlistentry[term="SIGINT"] systemd.xml ./refsect1[title="Signals"]/variablelist/varlistentry[term="SIGWINCH"]