chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2edd443
)
units: introduce emergency.target
author
Lennart Poettering
<lennart@poettering.net>
Mon, 12 Jul 2010 21:49:20 +0000
(23:49 +0200)
committer
Lennart Poettering
<lennart@poettering.net>
Mon, 12 Jul 2010 21:49:20 +0000
(23:49 +0200)
14 files changed:
Makefile.am
patch
|
blob
|
history
man/systemctl.xml
patch
|
blob
|
history
man/systemd.special.xml.in
patch
|
blob
|
history
src/manager.c
patch
|
blob
|
history
src/special.h
patch
|
blob
|
history
src/systemctl.c
patch
|
blob
|
history
units/emergency.service
patch
|
blob
|
history
units/fedora/halt.service
patch
|
blob
|
history
units/fedora/poweroff.service
patch
|
blob
|
history
units/fedora/reboot.service
patch
|
blob
|
history
units/fedora/sysinit.service
patch
|
blob
|
history
units/multi-user.target.m4
patch
|
blob
|
history
units/rescue.target
patch
|
blob
|
history
units/sysinit.target.m4
patch
|
blob
|
history
diff --git
a/Makefile.am
b/Makefile.am
index 6351537fadf811ae84a26e92858e0173953ad0ce..51fe5a946139c47d7e6461f131de357c0339fdb6 100644
(file)
--- a/
Makefile.am
+++ b/
Makefile.am
@@
-113,6
+113,7
@@
dbusinterface_DATA = \
dist_systemunit_DATA = \
units/emergency.service \
dist_systemunit_DATA = \
units/emergency.service \
+ units/emergency.target \
units/basic.target \
units/getty.target \
units/halt.target \
units/basic.target \
units/getty.target \
units/halt.target \
@@
-183,7
+184,8
@@
dist_systemunit_DATA += \
units/fedora/prefdm.service \
units/fedora/rc-local.service \
units/fedora/reboot.service \
units/fedora/prefdm.service \
units/fedora/rc-local.service \
units/fedora/reboot.service \
- units/fedora/sysinit.service
+ units/fedora/sysinit.service \
+ units/fedora/single.service
endif
if TARGET_SUSE
endif
if TARGET_SUSE
@@
-755,7
+757,8
@@
install-data-hook:
$(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
if TARGET_FEDORA
$(MKDIR_P) -m 0755 \
$(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
if TARGET_FEDORA
$(MKDIR_P) -m 0755 \
- $(DESTDIR)$(SYSTEM_SYSVINIT_PATH)
+ $(DESTDIR)$(SYSTEM_SYSVINIT_PATH) \
+ $(DESTDIR)$(systemunitdir)/rescue.target.wants
( cd $(DESTDIR)$(pkgsysconfdir)/system && \
rm -f display-manager.service && \
$(LN_S) $(systemunitdir)/prefdm.service display-manager.service )
( cd $(DESTDIR)$(pkgsysconfdir)/system && \
rm -f display-manager.service && \
$(LN_S) $(systemunitdir)/prefdm.service display-manager.service )
@@
-765,6
+768,9
@@
if TARGET_FEDORA
( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
rm -f rc-local.service && \
$(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
rm -f rc-local.service && \
$(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
+ ( cd $(DESTDIR)$(systemunitdir)/rescue.target.wants && \
+ rm -f single.service && \
+ $(LN_S) $(systemunitdir)/single.service single.service )
( cd $(DESTDIR)$(systemunitdir) && \
rm -f local.service && \
$(LN_S) rc-local.service local.service )
( cd $(DESTDIR)$(systemunitdir) && \
rm -f local.service && \
$(LN_S) rc-local.service local.service )
diff --git
a/man/systemctl.xml
b/man/systemctl.xml
index f0de186ea591cda852629178986f2e91caee8c4d..22d3f6ee5e5befb12860f465e1945749677d876d 100644
(file)
--- a/
man/systemctl.xml
+++ b/
man/systemctl.xml
@@
-501,7
+501,7
@@
<listitem><para>Enter emergency
mode. This is mostly equivalent to
<command>isolate
<listitem><para>Enter emergency
mode. This is mostly equivalent to
<command>isolate
- emergency.
service
</command> but also
+ emergency.
target
</command> but also
prints a wall message to all
users.</para></listitem>
</varlistentry>
prints a wall message to all
users.</para></listitem>
</varlistentry>
diff --git
a/man/systemd.special.xml.in
b/man/systemd.special.xml.in
index 64e37d1149e76f1991fab9c452015712520b22b0..c6c2393fc3b4121b7204507e27d515c1f57c2c81 100644
(file)
--- a/
man/systemd.special.xml.in
+++ b/
man/systemd.special.xml.in
@@
-54,7
+54,7
@@
<filename>dbus.target</filename>,
<filename>default.target</filename>,
<filename>display-manager.service</filename>,
<filename>dbus.target</filename>,
<filename>default.target</filename>,
<filename>display-manager.service</filename>,
- <filename>emergency.
service
</filename>,
+ <filename>emergency.
target
</filename>,
<filename>exit.service</filename>,
<filename>graphical.target</filename>,
<filename>halt.target</filename>,
<filename>exit.service</filename>,
<filename>graphical.target</filename>,
<filename>halt.target</filename>,
@@
-205,9
+205,9
@@
</listitem>
</varlistentry>
<varlistentry>
</listitem>
</varlistentry>
<varlistentry>
- <term><filename>emergency.
service
</filename></term>
+ <term><filename>emergency.
target
</filename></term>
<listitem>
<listitem>
- <para>A special
service
unit
+ <para>A special
target
unit
that starts an emergency
shell on the main
console. This unit is supposed
that starts an emergency
shell on the main
console. This unit is supposed
diff --git
a/src/manager.c
b/src/manager.c
index 6dfef713ed9abcf16a3809cf713b2c6ee00b92bd..9667e299f3f299faa195c4443c98af9eb442a6f4 100644
(file)
--- a/
src/manager.c
+++ b/
src/manager.c
@@
-1947,7
+1947,7
@@
static int manager_process_signal_fd(Manager *m) {
static const char * const table[] = {
[0] = SPECIAL_DEFAULT_TARGET,
[1] = SPECIAL_RESCUE_TARGET,
static const char * const table[] = {
[0] = SPECIAL_DEFAULT_TARGET,
[1] = SPECIAL_RESCUE_TARGET,
- [2] = SPECIAL_EMERGENCY_
SERVICE
,
+ [2] = SPECIAL_EMERGENCY_
TARGET
,
[3] = SPECIAL_HALT_TARGET,
[4] = SPECIAL_POWEROFF_TARGET,
[5] = SPECIAL_REBOOT_TARGET
[3] = SPECIAL_HALT_TARGET,
[4] = SPECIAL_POWEROFF_TARGET,
[5] = SPECIAL_REBOOT_TARGET
diff --git
a/src/special.h
b/src/special.h
index 5ecdd3ccfa1d21c34f679c7be08da3a24b783b76..9ffd3d892273d33893013c23bdc39e0f3a47aa97 100644
(file)
--- a/
src/special.h
+++ b/
src/special.h
@@
-53,7
+53,7
@@
#define SPECIAL_SYSINIT_TARGET "sysinit.target"
#define SPECIAL_RESCUE_TARGET "rescue.target"
#define SPECIAL_EXIT_SERVICE "exit.service"
#define SPECIAL_SYSINIT_TARGET "sysinit.target"
#define SPECIAL_RESCUE_TARGET "rescue.target"
#define SPECIAL_EXIT_SERVICE "exit.service"
-#define SPECIAL_EMERGENCY_
SERVICE "emergency.service
"
+#define SPECIAL_EMERGENCY_
TARGET "emergency.target
"
#define SPECIAL_HALT_TARGET "halt.target"
#define SPECIAL_POWEROFF_TARGET "poweroff.target"
#define SPECIAL_REBOOT_TARGET "reboot.target"
#define SPECIAL_HALT_TARGET "halt.target"
#define SPECIAL_POWEROFF_TARGET "poweroff.target"
#define SPECIAL_REBOOT_TARGET "reboot.target"
diff --git
a/src/systemctl.c
b/src/systemctl.c
index 32974aecceced7b1e45fa188590c3082f9672ab8..4218a22b97b0fd3621d303faaaac1135bbb9e9f5 100644
(file)
--- a/
src/systemctl.c
+++ b/
src/systemctl.c
@@
-720,7
+720,7
@@
static int start_unit(DBusConnection *bus, char **args, unsigned n) {
[ACTION_RUNLEVEL4] = SPECIAL_RUNLEVEL4_TARGET,
[ACTION_RUNLEVEL5] = SPECIAL_RUNLEVEL5_TARGET,
[ACTION_RESCUE] = SPECIAL_RESCUE_TARGET,
[ACTION_RUNLEVEL4] = SPECIAL_RUNLEVEL4_TARGET,
[ACTION_RUNLEVEL5] = SPECIAL_RUNLEVEL5_TARGET,
[ACTION_RESCUE] = SPECIAL_RESCUE_TARGET,
- [ACTION_EMERGENCY] = SPECIAL_EMERGENCY_
SERVICE
,
+ [ACTION_EMERGENCY] = SPECIAL_EMERGENCY_
TARGET
,
[ACTION_DEFAULT] = SPECIAL_DEFAULT_TARGET
};
[ACTION_DEFAULT] = SPECIAL_DEFAULT_TARGET
};
diff --git
a/units/emergency.service
b/units/emergency.service
index bcedebfa089d711f8df3201b3637381c847cfa7a..a5a54bc9d23e4b4e452c8f8cec218b873ba50a55 100644
(file)
--- a/
units/emergency.service
+++ b/
units/emergency.service
@@
-10,16
+10,17
@@
[Unit]
Description=Emergency Shell
DefaultDependencies=no
[Unit]
Description=Emergency Shell
DefaultDependencies=no
-Requires=shutdown.target umount.target
-After=shutdown.target umount.target
+After=shutdown.target
[Service]
[Service]
+ExecStartPre=-/bin/plymouth --hide-splash
+ExecStartPre=-/bin/echo 'Welcome to emergency mode. Use "systemctl default" to activate default mode.'
ExecStart=/bin/sh
ExecStart=/bin/sh
-StandardInput=tty
+StandardInput=tty
-force
Restart=restart-always
RestartSec=0
KillMode=process-group
# Bash ignores SIGTERM, so we send SIGHUP first, to ensure that bash
# terminates cleanly.
Restart=restart-always
RestartSec=0
KillMode=process-group
# Bash ignores SIGTERM, so we send SIGHUP first, to ensure that bash
# terminates cleanly.
-ExecStop=/bin/kill -HUP $(MAINPID)
+ExecStop=
-
/bin/kill -HUP $(MAINPID)
diff --git
a/units/fedora/halt.service
b/units/fedora/halt.service
index b957a3fe302f4ee4e6dfcab5a25b229a8f236354..4fe0d532f687fa08f97cdddf69e0e7a04e16b4ba 100644
(file)
--- a/
units/fedora/halt.service
+++ b/
units/fedora/halt.service
@@
-8,9
+8,9
@@
[Unit]
Description=Halt
DefaultDependencies=no
[Unit]
Description=Halt
DefaultDependencies=no
-Requires=shutdown.target killall.service
-
After=shutdown.target killall
.service
-Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount
+Requires=shutdown.target
umount.target
killall.service
+
Conflicts=sysinit
.service
+After=shutdown.target umount.target killall.service sysinit.service
[Service]
Type=finish
[Service]
Type=finish
diff --git
a/units/fedora/poweroff.service
b/units/fedora/poweroff.service
index 76d030c041c2cf15e51ab6ce184d87629aac183f..3a5387570772fe8e0e9f7a7f22032baa60362023 100644
(file)
--- a/
units/fedora/poweroff.service
+++ b/
units/fedora/poweroff.service
@@
-8,9
+8,9
@@
[Unit]
Description=Power-Off
DefaultDependencies=no
[Unit]
Description=Power-Off
DefaultDependencies=no
-Requires=shutdown.target killall.service
-
After=shutdown.target killall
.service
-Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount
+Requires=shutdown.target
umount.target
killall.service
+
Conflicts=sysinit
.service
+After=shutdown.target umount.target killall.service sysinit.service
[Service]
Type=finish
[Service]
Type=finish
diff --git
a/units/fedora/reboot.service
b/units/fedora/reboot.service
index 6a93c0b5575c29d6d02b7d04ffe50ba4219fde8d..0f3e206eb0c3bcea1c4a8ef336353d2f25c2b53d 100644
(file)
--- a/
units/fedora/reboot.service
+++ b/
units/fedora/reboot.service
@@
-8,9
+8,9
@@
[Unit]
Description=Reboot
DefaultDependencies=no
[Unit]
Description=Reboot
DefaultDependencies=no
-Requires=shutdown.target killall.service
-
After=shutdown.target killall
.service
-Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount
+Requires=shutdown.target
umount.target
killall.service
+
Conflicts=sysinit
.service
+After=shutdown.target umount.target killall.service sysinit.service
[Service]
Type=finish
[Service]
Type=finish
diff --git
a/units/fedora/sysinit.service
b/units/fedora/sysinit.service
index 884de8d1d636424debb95b73f33740fd9a1dc713..21872e8d8af66840832b27386222456430883ab3 100644
(file)
--- a/
units/fedora/sysinit.service
+++ b/
units/fedora/sysinit.service
@@
-8,9
+8,7
@@
[Unit]
Description=System Initialization
DefaultDependencies=no
[Unit]
Description=System Initialization
DefaultDependencies=no
-Before=local-fs.target remote-fs.target swap.target sockets.target
-Conflicts=shutdown.target
-Before=shutdown.target
+Before=emergency.service emergency.target
[Service]
ExecStart=/etc/rc.d/rc.sysinit
[Service]
ExecStart=/etc/rc.d/rc.sysinit
diff --git
a/units/multi-user.target.m4
b/units/multi-user.target.m4
index 010e7d8474016f2c16adfc3379a0d354fc779c90..323ba01a60e3300a98dc8160de7dcd2d0cf59817 100644
(file)
--- a/
units/multi-user.target.m4
+++ b/
units/multi-user.target.m4
@@
-10,8
+10,8
@@
[Unit]
Description=Multi-User
Requires=basic.target
[Unit]
Description=Multi-User
Requires=basic.target
-
After=basic
.target
-
Conflicts=
rescue.target
+
Conflicts=rescue.target shutdown
.target
+
After=basic.target
rescue.target
m4_dnl
m4_ifdef(`TARGET_FEDORA',
m4_dnl On Fedora Runlevel 3 is multi-user
m4_dnl
m4_ifdef(`TARGET_FEDORA',
m4_dnl On Fedora Runlevel 3 is multi-user
diff --git
a/units/rescue.target
b/units/rescue.target
index 0398f9bfb4a67cfc64919de67f2bc531a738deff..638f47c1e8b19a45b8ad085239c3f242a8bf6cba 100644
(file)
--- a/
units/rescue.target
+++ b/
units/rescue.target
@@
-8,9
+8,10
@@
# See systemd.special(7) for details
[Unit]
# See systemd.special(7) for details
[Unit]
-Description=Rescue Prompt
-Requires=basic.target
-After=basic.target
+Description=Rescue Mode
+Requires=sysinit.target local-fs.target swap.target shutdown.target
+Conflicts=emergency.service emergency.target
+After=sysinit.target local-fs.target swap.target shutdown.target emergency.service emergency.target
Names=runlevel1.target
[Install]
Names=runlevel1.target
[Install]
diff --git
a/units/sysinit.target.m4
b/units/sysinit.target.m4
index 48e55a4358d00d5dc1166b717b97298a66d75c66..29693b3ff2e648c8959236fd073c2c0b66aa74dc 100644
(file)
--- a/
units/sysinit.target.m4
+++ b/
units/sysinit.target.m4
@@
-9,7
+9,8
@@
[Unit]
Description=Systemd Initialization
[Unit]
Description=Systemd Initialization
-Conflicts=emergency.service
+Conflicts=emergency.service emergency.target
+After=emergency.service emergency.target
OnlyByDependency=yes
m4_dnl
m4_ifdef(`TARGET_FEDORA',
OnlyByDependency=yes
m4_dnl
m4_ifdef(`TARGET_FEDORA',