marsadm: skip predefined units

This commit is contained in:
Thomas Schoebel-Theuer 2020-11-17 11:19:28 +01:00 committed by Thomas Schoebel-Theuer
parent bd2622e484
commit fcad02e977
1 changed files with 23 additions and 0 deletions

View File

@ -940,6 +940,28 @@ my $systemd_suffixes = defined($ENV{SYSTEMD_SUFFIXES}) ?
$ENV{SYSTEMD_SUFFIXES} :
"service,socket,device,mount,automount,swap,target,path,timer,slice,scope,script";
# see man systemd.special
my $systemd_predefined = defined($ENV{SYSTEMD_PREDEFINED}) ?
$ENV{SYSTEMD_PREDEFINED} :
"basic.target,bluetooth.target,cryptsetup-pre.target,cryptsetup.target,ctrl-alt-del.target," .
"default.target,emergency.target,exit.target,final.target,getty.target,graphical.target," .
"halt.target,hibernate.target,hybrid-sleep.target,initrd-fs.target,initrd-root-device.target," .
"initrd-root-fs.target,kbrequest.target,kexec.target,local-fs-pre.target,local-fs.target," .
"machines.target multi-user.target,network-online.target,network-pre.target,network.target," .
"nss-lookup.target,nss-user-lookup.target,paths.target,poweroff.target,printer.target," .
"reboot.target,remote-cryptsetup.target,remote-fs-pre.target,remote-fs.target,rescue.target," .
"rpcbind.target,runlevel2.target,runlevel3.target,runlevel4.target,runlevel5.target," .
"shutdown.target,sigpwr.target,sleep.target,slices.target,smartcard.target,sockets.target," .
"sound.target,suspend.target,swap.target,sysinit.target,syslog.socket,system-update.target," .
"time-sync.target,timers.target,umount.target," .
"system.slice,user.slice,machine.slice," .
"dbus.service,dbus.socket,display-manager.service,system-update-cleanup.service";
my %predefined_unit;
foreach my $name (split(",", $systemd_predefined)) {
$predefined_unit{$name} = 1;
}
my $systemctl = defined($ENV{SYSTEMCTL}) ? $ENV{SYSTEMCTL} : "systemctl";
my $systemd_escape = defined($ENV{SYSTEMD_ESCAPE}) ? $ENV{SYSTEMD_ESCAPE} : "@";
my $systemd_incape = defined($ENV{SYSTEMD_INCAPE}) ? $ENV{SYSTEMD_INCAPE} : "\\^";
@ -1334,6 +1356,7 @@ sub _check_timestamps {
sub make_systemd_unit {
my ($cmd, $res, $target, $force_generate) = @_;
return 0 if $predefined_unit{$target};
# dynamic programming
$res = "" unless defined($res);
my $gen_key = "$cmd.$res.$target";