From 306a7fd82e790b3c00ba5cf806ccd6c0108061b5 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 25 Oct 2010 21:02:01 +0200 Subject: [PATCH] units: activate wall agent automatically if something is dropped in /dev/.systemd/ask-password --- Makefile.am | 11 ++++++++--- TODO | 2 -- units/.gitignore | 1 + units/systemd-ask-password-wall.path | 13 +++++++++++++ units/systemd-ask-password-wall.service.in | 13 +++++++++++++ 5 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 units/systemd-ask-password-wall.path create mode 100644 units/systemd-ask-password-wall.service.in diff --git a/Makefile.am b/Makefile.am index 62dcf78e..77d1fc93 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 9bb162ef..86b6c9f1 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 2bd507a7..42058c50 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 00000000..a555d26f --- /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 00000000..e810fe30 --- /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 -- 2.39.5