Commit 81253930 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

job: convert job type as early as we can, to simplify things a bit

parent 85f0c93a
...@@ -14,11 +14,19 @@ F15: ...@@ -14,11 +14,19 @@ F15:
* hook emergency.target into local-fs.target in some way as OnFailure with isolate * 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: 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 * introduce "x-systemd-automount" as alternative to the "comment=systemd.automount" mount option
...@@ -30,18 +38,12 @@ Features: ...@@ -30,18 +38,12 @@ Features:
document it? When doing that add switch to make this temporary by document it? When doing that add switch to make this temporary by
placing mask links in /dev. 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 * detect LXC environment
* invoke vhangup() before and after invoking getty * invoke vhangup() before and after invoking getty
* support "auto" and "comment=systemd.automount" at the same time for an fstab entry * 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 * 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" * perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
......
...@@ -422,10 +422,16 @@ int job_run_and_invalidate(Job *j) { ...@@ -422,10 +422,16 @@ int job_run_and_invalidate(Job *j) {
break; break;
case JOB_RELOAD_OR_START: 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); r = unit_reload(j->unit);
else } else {
j->type = JOB_START;
r = unit_start(j->unit); r = unit_start(j->unit);
if (r == -EBADR)
r = 0;
}
break; break;
case JOB_RESTART: { case JOB_RESTART: {
...@@ -445,8 +451,10 @@ int job_run_and_invalidate(Job *j) { ...@@ -445,8 +451,10 @@ int job_run_and_invalidate(Job *j) {
else if (t == UNIT_ACTIVATING) { else if (t == UNIT_ACTIVATING) {
j->type = JOB_START; j->type = JOB_START;
r = unit_start(j->unit); r = unit_start(j->unit);
} else } else {
j->type = JOB_RESTART;
r = unit_stop(j->unit); r = unit_stop(j->unit);
}
break; break;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment