mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
systemctl-edit: ignore ENOENT from unit_is_masked()
If a specified unit does not exist, then it is definitely not masked.
Fixes #35632.
(cherry picked from commit b58b00e4c3
)
This commit is contained in:
parent
b5dc1922f9
commit
48b404d546
@ -349,8 +349,8 @@ int verb_edit(int argc, char *argv[], void *userdata) {
|
||||
|
||||
STRV_FOREACH(tmp, names) {
|
||||
r = unit_is_masked(bus, *tmp);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r < 0 && r != -ENOENT)
|
||||
return log_error_errno(r, "Failed to check if unit %s is masked: %m", *tmp);
|
||||
if (r > 0)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot edit %s: unit is masked.", *tmp);
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ at_exit() {
|
||||
# the 'revert' verb as well
|
||||
export UNIT_NAME="systemctl-test-$RANDOM.service"
|
||||
export UNIT_NAME2="systemctl-test-$RANDOM.service"
|
||||
export UNIT_NAME_TEMPLATE="systemctl-test-${RANDOM}@.service"
|
||||
|
||||
cat >"/usr/lib/systemd/system/$UNIT_NAME" <<\EOF
|
||||
[Unit]
|
||||
@ -65,6 +66,16 @@ EOF
|
||||
printf '%s\n' '[Unit]' 'Description=spectacular' '# this comment should remain' | \
|
||||
cmp - "/etc/systemd/system/$UNIT_NAME.d/override2.conf"
|
||||
|
||||
# Edit nonexistent template unit, see issue #35632.
|
||||
systemctl edit "$UNIT_NAME_TEMPLATE" --stdin --runtime --force --full <<EOF
|
||||
[Unit]
|
||||
Description=template unit test
|
||||
# this comment should remain
|
||||
|
||||
EOF
|
||||
printf '%s\n' '[Unit]' 'Description=template unit test' '# this comment should remain' | \
|
||||
cmp - "/run/systemd/system/$UNIT_NAME_TEMPLATE"
|
||||
|
||||
# Test simultaneous editing of two units and creation of drop-in for a nonexistent unit
|
||||
systemctl edit "$UNIT_NAME" "$UNIT_NAME2" --stdin --force --drop-in=override2.conf <<<'[X-Section]'
|
||||
printf '%s\n' '[X-Section]' | cmp - "/etc/systemd/system/$UNIT_NAME.d/override2.conf"
|
||||
|
Loading…
Reference in New Issue
Block a user