bzr branch
http://bzr.recompile.se/loggerhead/mandos/trunk
953
by Teddy Hogeborn
Adapt to changes in cryptsetup; use "cryptroot-unlock" program |
1 |
#!/bin/sh -e
|
2 |
#
|
|
3 |
# Script to wait for plugin-runner to exit before continuing boot
|
|
4 |
#
|
|
5 |
# Copyright © 2018 Teddy Hogeborn
|
|
6 |
# Copyright © 2018 Björn Påhlsson
|
|
7 |
#
|
|
8 |
# This file is part of Mandos.
|
|
9 |
#
|
|
10 |
# Mandos is free software: you can redistribute it and/or modify it
|
|
11 |
# under the terms of the GNU General Public License as published by
|
|
12 |
# the Free Software Foundation, either version 3 of the License, or
|
|
13 |
# (at your option) any later version.
|
|
14 |
#
|
|
15 |
# Mandos is distributed in the hope that it will be useful, but
|
|
16 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18 |
# GNU General Public License for more details.
|
|
19 |
#
|
|
20 |
# You should have received a copy of the GNU General Public License
|
|
21 |
# along with Mandos. If not, see <http://www.gnu.org/licenses/>.
|
|
22 |
#
|
|
23 |
# Contact the authors at <mandos@recompile.se>.
|
|
24 |
#
|
|
25 |
# This script will run in the initrd environment at boot and remove
|
|
26 |
# the file keeping the dummy plugin running, forcing plugin-runner to
|
|
27 |
# exit if it is still running.
|
|
28 |
||
29 |
# This script should be installed as
|
|
30 |
# "/usr/share/initramfs-tools/scripts/local-premount/mandos" which will
|
|
31 |
# eventually be "/scripts/local-premount/mandos" in the initrd.img
|
|
32 |
# file.
|
|
33 |
||
34 |
PREREQ="" |
|
35 |
prereqs()
|
|
36 |
{
|
|
37 |
echo "$PREREQ" |
|
38 |
}
|
|
39 |
||
40 |
case $1 in |
|
41 |
prereqs)
|
|
42 |
prereqs
|
|
43 |
exit 0 |
|
44 |
;; |
|
45 |
esac
|
|
46 |
||
47 |
. /scripts/functions
|
|
48 |
||
49 |
pid=$(cat /run/mandos-plugin-runner.pid 2>/dev/null) |
|
50 |
||
51 |
# If the dummy plugin is running, removing this file should force the
|
|
52 |
# dummy plugin to exit successfully, thereby making plugin-runner shut
|
|
53 |
# down all its other plugins and then exit itself.
|
|
54 |
rm -f /run/mandos-keep-running >/dev/null 2>&1 |
|
55 |
||
56 |
# Wait for exit of plugin-runner, if still running
|
|
57 |
if [ -n "$pid" ]; then |
|
58 |
while :; do |
|
59 |
case "$(readlink /proc/"$pid"/exe 2>/dev/null)" in |
|
60 |
*/plugin-runner) sleep 1;; |
|
61 |
*) break;; |
|
62 |
esac |
|
63 |
done |
|
64 |
rm -f /run/mandos-plugin-runner.pid >/dev/null 2>&1 |
|
65 |
fi
|