[Tails-dev] Improvement of the shutdown sequence

Delete this message

Reply to this message
Author: Ague Mill
Date:  
To: tails-dev
Subject: [Tails-dev] Improvement of the shutdown sequence
Hi!

I have noticed that there is some seconds in the shutdown sequence that
might be wasted by properly shutting down services that we don't care
much about.

Here is the current init scripts that are currently called (same scripts
and order for shutdown and reboot sequences) in Tails 0.11 and an
analysis of what might be removed:

First batch
-----------

All these scripts are run at the same priority (and time):

* alsa-utils

Store soundcards levels. As we are amnesic, candidate for
**removal**.

* fuse

Unmount fuse filesystems and remove kernel module. Sounds
like a good idea to keep it to avoid data loss.

* gdm3

Stop the graphical environment. Keep?

* gdomap

Stop the "GNUstep distributed object mapper". Let init kill it:
**remove**.

* haveged

Stop the entropy daemon. Let sendsigs kill it: **remove**.

* kexec-load

Load kernel and initrd. Keep.

* laptop-mode

Revert laptop settings. I think that's actually not a good thing to
do. **Remove**

* memlockd

Stop memlockd. Memwipe files will not kept in memory after that.
Better let sendsigs kill it, or even, add its PID to
/var/run/sendsigs.omit. **Remove**

* network-manager

Stop Network Manager. Maybe we ought to keep it to release DHCP
leases?

* pdnsd

Stop the proxy DNS server. sendsigs can do it: **remove**

* polipo

Stop the polipo daemon. sendsigs can do it: **remove**

* resolvconf

Cleanup /etc/resolv.conf. No need to, we are amnesic: **remove**

* saned

Does nothing except print a warning: **remove**

* spice-vdagent

Stop the agent daemon for Spice guests. sendsigs can do it: **remove**

* ttdnsd

Stop ttdnsd. sendsigs can do it: **remove**

* urandom

Save the random seed. We are amnesic: **remove**

* virtualbox-guest-utils

Stop VBoxService daemon. I am unsure. Is it needed to properly
unmount virtualbox shares?

Following sequence
------------------

And then, in order:

* tor

Stop Tor. We could probably leave that to sendsigs.

* sendsigs

Send TERM signals to every remaining process and then KILL if any
remains.

* rsyslog

Shutdown the logging daemon. Keep?

* umountnfs.sh

Umount NFS mountpoints. Keep.

* networking

Unconfigure networking. As we are using network-manager

* ifupdown

Clean ifupdown status. We are amnesic: **remove**.

* open-vm-tools

Stop VMWare daemon and modules. I say **remove**.

* umountfs

Unmount filesystems which are not root. Keep.

* cryptdisks

Deconfigure dm-crypt volumes. Keep.

* lvm2

Deconfigure LVM volumes. Keep.

* cryptdisks-early

Deconfigure dm-crypt for root volumes. No need for Tails: **remove**.

* umountroot

Unmount root filesystem. Keep?

* live-boot

Resyncing snapshots and cache reboot files. That can be removed for
Tails, right?

* tails-kexec

Keep, captain obvious.

What do other thinks?

Any advice on how to implement the removal of those extra scripts?
A hook with a bunch of `rm` commands? It looks like `update-rc.d` really
wants to have shutdown scripts in place...

--
Ague