job: convert job type as early as we can, to simplify things a bit
This commit is contained in:
parent
85f0c93a50
commit
8125393018
18
TODO
18
TODO
|
@ -14,11 +14,19 @@ F15:
|
|||
|
||||
* hook emergency.target into local-fs.target in some way as OnFailure with isolate
|
||||
|
||||
* libudev is borked regarding tags
|
||||
* introduce simple way to do mandatory conditions (make current conditions mandatory, and introduce =| as non-mandatory conditions)
|
||||
|
||||
* mount /dev/.run and /var/run as bind mounts
|
||||
|
||||
* Make use of UnknownInterface, UnknownObject
|
||||
|
||||
* verify SYSTEMD_IGNORE_DEPENDENCIES support in /etc/rc.d/functions
|
||||
|
||||
Features:
|
||||
|
||||
* mount /dev/.run and /var/run as bind mounts
|
||||
* consider services with no [Install] section and stored in /lib enabled by "systemctl is-enabled"
|
||||
|
||||
* consider services with any kind of link in /etc/systemd/system enabled
|
||||
|
||||
* introduce "x-systemd-automount" as alternative to the "comment=systemd.automount" mount option
|
||||
|
||||
|
@ -30,18 +38,12 @@ Features:
|
|||
document it? When doing that add switch to make this temporary by
|
||||
placing mask links in /dev.
|
||||
|
||||
* introduce simple way to do mandatory conditions (make current conditions mandatory, and introduce =| as non-mandatory conditions)
|
||||
|
||||
* detect LXC environment
|
||||
|
||||
* invoke vhangup() before and after invoking getty
|
||||
|
||||
* support "auto" and "comment=systemd.automount" at the same time for an fstab entry
|
||||
|
||||
* Make use of UnknownInterface, UnknownObject
|
||||
|
||||
* look up crypto partition mount points via fstab to show to the user when prompting for a password
|
||||
|
||||
* Maybe store in unit files whether a service should be enabled by default on package installation
|
||||
|
||||
* perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
|
||||
|
|
14
src/job.c
14
src/job.c
|
@ -422,10 +422,16 @@ int job_run_and_invalidate(Job *j) {
|
|||
break;
|
||||
|
||||
case JOB_RELOAD_OR_START:
|
||||
if (unit_active_state(j->unit) == UNIT_ACTIVE)
|
||||
if (unit_active_state(j->unit) == UNIT_ACTIVE) {
|
||||
j->type = JOB_RELOAD;
|
||||
r = unit_reload(j->unit);
|
||||
else
|
||||
} else {
|
||||
j->type = JOB_START;
|
||||
r = unit_start(j->unit);
|
||||
|
||||
if (r == -EBADR)
|
||||
r = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case JOB_RESTART: {
|
||||
|
@ -445,8 +451,10 @@ int job_run_and_invalidate(Job *j) {
|
|||
else if (t == UNIT_ACTIVATING) {
|
||||
j->type = JOB_START;
|
||||
r = unit_start(j->unit);
|
||||
} else
|
||||
} else {
|
||||
j->type = JOB_RESTART;
|
||||
r = unit_stop(j->unit);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue