/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to dracut-module/ask-password-mandos.service

  • Committer: Teddy Hogeborn
  • Date: 2019-07-30 17:03:57 UTC
  • Revision ID: teddy@recompile.se-20190730170357-jte0piul5mq7j5pr
Server: Reap zombies created by multiprocessing.Process()

When creating checkers as multiprocessing.Process() objects, the
multiprocessing module also creates a parent process (for the
call_pipe() function) to call the actual checker process, but this
parent process is not reaped.  This is not a huge problem, since the
zombie is always reaped automatically the next time the multiprocess
starts a new process, but the zombies can be up to as many as there
have ever been simultaneous checker processes.  To fix this, the
process object must be join():ed when they report completion of the
child checker process.

* mandos (Client): Fix doc string to correctly state that
                   Client.checker is a multiprocess.Process() and not
                   a subprocess.Popen() object.
  (Client.checker_callback): After the returncode of the checker
                             process has been read, wait for the
                             self.checker Process object to finish by
                             calling join() on it.

Reported-by: Peter Palfrader <weasel@debian.org>

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- systemd -*-
2
2
3
 
# Copyright © 2019-2023 Teddy Hogeborn
4
 
# Copyright © 2019-2023 Björn Påhlsson
 
3
# Copyright © 2019 Teddy Hogeborn
 
4
# Copyright © 2019 Björn Påhlsson
5
5
6
6
# This file is part of Mandos.
7
7
48
48
ConditionPathIsMountPoint=!/sysroot
49
49
 
50
50
[Service]
51
 
ExecStart=/lib/mandos/password-agent $PASSWORD_AGENT_OPTIONS -- /lib/mandos/mandos-client --pubkey=/etc/mandos/keys/pubkey.txt --seckey=/etc/mandos/keys/seckey.txt --tls-pubkey=/etc/mandos/keys/tls-pubkey.pem --tls-privkey=/etc/mandos/keys/tls-privkey.pem $MANDOS_CLIENT_OPTIONS
52
 
#
53
 
# Please keep the above line intact, exactly as it is!  To add extra
54
 
# options to mandos-client, instead create an override file (e.g. with
55
 
# the command "systemctl edit --force ask-password-mandos.service"),
56
 
# and, in that file, put something like the following:
57
 
#
58
 
#       [Service]
59
 
#       Environment=MANDOS_CLIENT_OPTIONS=--debug
60
 
#
61
 
# Rebuild the initramfs using this command:
62
 
#
63
 
#       dpkg-reconfigure dracut
64
 
#
65
 
# Once the system has booted (possibly by typing in the password
66
 
# manually), you can see the log using this command:
67
 
#
68
 
#       journalctl --unit=ask-password-mandos.service
69
 
#
70
 
# Lastly, to remove the override file with extra options, run:
71
 
#
72
 
#       systemctl revert ask-password-mandos.service
73
 
#
74
 
# And rebuild the initramfs again, as above.
 
51
ExecStart=/lib/mandos/password-agent -- /lib/mandos/mandos-client --pubkey=/etc/mandos/keys/pubkey.txt --seckey=/etc/mandos/keys/seckey.txt --tls-pubkey=/etc/mandos/keys/tls-pubkey.pem --tls-privkey=/etc/mandos/keys/tls-privkey.pem