summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-10-25 21:02:01 +0200
committerLennart Poettering <lennart@poettering.net>2010-10-25 21:02:01 +0200
commit306a7fd82e790b3c00ba5cf806ccd6c0108061b5 (patch)
tree82eb46a21ab0d40cec30bf764e1af64de980b5ab
parent50f298ec0fbb0ea2d09d3952fc522bc8db8f28e6 (diff)
units: activate wall agent automatically if something is dropped in /dev/.systemd/ask-password
-rw-r--r--Makefile.am11
-rw-r--r--TODO2
-rw-r--r--units/.gitignore1
-rw-r--r--units/systemd-ask-password-wall.path13
-rw-r--r--units/systemd-ask-password-wall.service.in13
5 files changed, 35 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index 62dcf78e6..77d1fc938 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -209,7 +209,8 @@ dist_systemunit_DATA = \
units/smartcard.target \
units/systemd-readahead-done.timer \
units/systemd-tmpfiles-clean.timer \
- units/quotaon.service
+ units/quotaon.service \
+ units/systemd-ask-password-wall.path
nodist_systemunit_DATA = \
units/sysinit.target \
@@ -235,6 +236,7 @@ nodist_systemunit_DATA = \
units/systemd-tmpfiles-setup.service \
units/systemd-tmpfiles-clean.service \
units/systemd-user-sessions.service \
+ units/systemd-ask-password-wall.service \
units/syslog.target \
units/halt.service \
units/poweroff.service \
@@ -276,6 +278,7 @@ EXTRA_DIST = \
units/systemd-tmpfiles-setup.service.in \
units/systemd-tmpfiles-clean.service.in \
units/systemd-user-sessions.service.in \
+ units/systemd-ask-password-wall.service.in \
units/syslog.target.in \
units/halt.service.in \
units/poweroff.service.in \
@@ -911,6 +914,7 @@ pam_systemd_la_LIBADD = \
SED_PROCESS = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(SED) -e 's,@rootlibexecdir\@,$(rootlibexecdir),g' \
+ -e 's,@rootbindir\@,$(rootbindir),g' \
-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
-e 's,@SYSTEMCTL\@,$(rootbindir)/systemctl,g' \
-e 's,@SYSTEMD_NOTIFY\@,$(rootbindir)/systemd-notify,g' \
@@ -1116,9 +1120,10 @@ install-data-hook:
$(LN_S) graphical.target default.target && \
$(LN_S) reboot.target ctrl-alt-del.target )
( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
- rm -f getty.target systemd-user-sessions.service && \
+ rm -f getty.target systemd-user-sessions.service systemd-ask-password-wall.path && \
$(LN_S) ../getty.target getty.target && \
- $(LN_S) ../systemd-user-sessions.service systemd-user-sessions.service )
+ $(LN_S) ../systemd-user-sessions.service systemd-user-sessions.service && \
+ $(LN_S) ../systemd-ask-password-wall.path systemd-ask-password-wall.path )
( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
rm -f getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty1.service && \
diff --git a/TODO b/TODO
index 9bb162ef0..86b6c9f16 100644
--- a/TODO
+++ b/TODO
@@ -62,8 +62,6 @@
* spawn ask-password tty agent temporarily in systemctl
-* spawn ask-password wall agent on boot via .path unit
-
* readahead: btrfs/LVM SSD detection
* document locale.conf, vconsole.conf and possibly the tempfiles.d and modules-load.d mechanism.
diff --git a/units/.gitignore b/units/.gitignore
index 2bd507a76..42058c501 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -1,3 +1,4 @@
+systemd-ask-password-wall.service
quotacheck.service
fsck@.service
fsck-root.service
diff --git a/units/systemd-ask-password-wall.path b/units/systemd-ask-password-wall.path
new file mode 100644
index 000000000..a555d26f1
--- /dev/null
+++ b/units/systemd-ask-password-wall.path
@@ -0,0 +1,13 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Forward Password Requests to Wall Directory Watch
+After=local-fs.target
+
+[Path]
+DirectoryNotEmpty=/dev/.systemd/ask-password
diff --git a/units/systemd-ask-password-wall.service.in b/units/systemd-ask-password-wall.service.in
new file mode 100644
index 000000000..e810fe309
--- /dev/null
+++ b/units/systemd-ask-password-wall.service.in
@@ -0,0 +1,13 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Forward Password Requests to Wall
+After=getty.target
+
+[Service]
+ExecStart=@rootbindir@/systemd-tty-ask-password-agent --wall