diff options
| author | Ray Strode <rstrode@redhat.com> | 2007-10-21 20:52:27 -0400 |
|---|---|---|
| committer | Ray Strode <rstrode@redhat.com> | 2007-10-21 20:52:27 -0400 |
| commit | a234fea7ad4bbe64535367ccbb50e2b9093218f4 (patch) | |
| tree | 454ffa5a7a8b9366b697cd1c731b08a6ac19c41e /src | |
| parent | 0ab5c82cd09023e193b7588a3da53588ede72df8 (diff) | |
| download | plymouth-a234fea7ad4bbe64535367ccbb50e2b9093218f4.tar.gz plymouth-a234fea7ad4bbe64535367ccbb50e2b9093218f4.tar.xz plymouth-a234fea7ad4bbe64535367ccbb50e2b9093218f4.zip | |
move data to a ramfs and clean up mounts on exit
Shutdown was being noisy because we didn't unmount
/var/run/plymouth/{proc,dev/pts} etc. Also we want
/var/run/plymouth to be a ramfs so that nash doesn't
go deleting it while its still running
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -93,9 +93,16 @@ static void on_quit (state_t *state) { ply_terminal_session_close_log (state->session); - umount ("/sysroot"); ply_boot_splash_hide (state->boot_splash); ply_event_loop_exit (state->loop, 0); + + fchdir (state->original_root_dir_fd); + chroot ("."); + ply_unmount_filesystem (PLY_WORKING_DIRECTORY "/sysroot"); + ply_unmount_filesystem (PLY_WORKING_DIRECTORY "/sysroot"); + ply_unmount_filesystem (PLY_WORKING_DIRECTORY "/proc"); + ply_unmount_filesystem (PLY_WORKING_DIRECTORY "/dev/pts"); + ply_unmount_filesystem (PLY_WORKING_DIRECTORY); } static ply_boot_server_t * @@ -185,7 +192,7 @@ create_working_directory (state_t *state) { ply_trace ("creating working directory '%s'", PLY_WORKING_DIRECTORY); - if (!ply_create_directory (PLY_WORKING_DIRECTORY)) + if (!ply_create_detachable_directory (PLY_WORKING_DIRECTORY)) return false; ply_trace ("changing to working directory"); @@ -212,6 +219,10 @@ create_working_directory (state_t *state) if (!ply_create_directory (PLYMOUTH_PLUGIN_PATH + 1)) return false; + ply_trace ("creating sysroot subdirectory"); + if (!ply_create_directory ("sysroot")) + return false; + return true; } |
