[systemd-devel] sysv-generator weirdness for shutdown runlevels

Francis Moreau francis.moro at gmail.com
Wed May 25 20:12:44 UTC 2016


Hello,

I'm starring at a chunk of code of the sysv-generator (shown below)
for some while now and I still can't see its purpose.

Here's the code taken from src/sysv-generator/sysv-generator.c:

static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap
*all_services) {

[...]

                                } else if (de->d_name[0] == 'K' &&
                                           (rcnd_table[i].type ==
RUNLEVEL_DOWN)) {


set_ensure_allocated(&shutdown_services, NULL);
                                    set_put(shutdown_services, service);
                                }
[...]

For simplicity sake, I removed the sanity checkings.

If I parsed it correctly, it handles symlinks in rc[06].d/ such as:
/etc/init.d/rc0.d/K50foo.

In this case this adds a "Conflicts=shutdown.target" and
"Before=shutdown.target" to the foo stub service.

What exactly the point to do that specially ? which sysvinit behavior
systemd is try to mimic ?

Thanks.
-- 
Francis


More information about the systemd-devel mailing list