From 670802d4b1d16c3785a695bea6e13b8bf8c8a822 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 18 May 2010 03:10:17 +0200 Subject: [PATCH] units: replace a few non-essential API mounts with automount units --- Makefile.am | 22 +++++++++++++++++++++- src/mount-setup.c | 5 +---- units/dev-hugepages.automount | 23 +++++++++++++++++++++++ units/dev-hugepages.mount | 24 ++++++++++++++++++++++++ units/dev-mqueue.automount | 23 +++++++++++++++++++++++ units/dev-mqueue.mount | 24 ++++++++++++++++++++++++ units/proc-sys-fs-binfmt_misc.automount | 23 +++++++++++++++++++++++ units/proc-sys-fs-binfmt_misc.mount | 24 ++++++++++++++++++++++++ units/sys-kernel-debug.automount | 23 +++++++++++++++++++++++ units/sys-kernel-debug.mount | 24 ++++++++++++++++++++++++ units/var-run.mount | 25 +++++++++++++++++++++++++ 11 files changed, 235 insertions(+), 5 deletions(-) create mode 100644 units/dev-hugepages.automount create mode 100644 units/dev-hugepages.mount create mode 100644 units/dev-mqueue.automount create mode 100644 units/dev-mqueue.mount create mode 100644 units/proc-sys-fs-binfmt_misc.automount create mode 100644 units/proc-sys-fs-binfmt_misc.mount create mode 100644 units/sys-kernel-debug.automount create mode 100644 units/sys-kernel-debug.mount create mode 100644 units/var-run.mount diff --git a/Makefile.am b/Makefile.am index e6366dd0..3589b735 100644 --- a/Makefile.am +++ b/Makefile.am @@ -82,7 +82,16 @@ dist_systemunit_DATA = \ units/sockets.target \ units/swap.target \ units/systemd-initctl.socket \ - units/systemd-logger.socket + units/systemd-logger.socket \ + units/dev-hugepages.automount \ + units/dev-hugepages.mount \ + units/dev-mqueue.automount \ + units/dev-mqueue.mount \ + units/proc-sys-fs-binfmt_misc.automount \ + units/proc-sys-fs-binfmt_misc.mount \ + units/sys-kernel-debug.automount \ + units/sys-kernel-debug.mount \ + units/var-run.mount systemunit_DATA = \ units/basic.target \ @@ -404,8 +413,10 @@ install-data-hook: $(DESTDIR)$(systemunitdir) \ $(DESTDIR)$(sessionunitdir) \ $(DESTDIR)$(systemunitdir)/sockets.target.wants \ + $(DESTDIR)$(systemunitdir)/basic.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system \ $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \ + $(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants \ $(DESTDIR)$(pkgsysconfdir)/session \ @@ -451,6 +462,15 @@ install-data-hook: ( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \ rm -f getty.target && \ $(LN_S) $(systemunitdir)/getty.target getty.target ) + ( cd $(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants && \ + rm -f var-run.mount && \ + $(LN_S) $(systemunitdir)/var-run.mount var-run.mount ) + ( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \ + rm -f dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount && \ + $(LN_S) ../dev-hugepages.automount dev-hugepages.automount && \ + $(LN_S) ../dev-mqueue.automount dev-mqueue.automount && \ + $(LN_S) ../proc-sys-fs-binfmt_misc.automount proc-sys-fs-binfmt_misc.automount && \ + $(LN_S) ../sys-kernel-debug.automount sys-kernel-debug.automount ) if TARGET_FEDORA ( cd $(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants && \ rm -f prefdm.service && \ diff --git a/src/mount-setup.c b/src/mount-setup.c index e4f2b73f..889cf67e 100644 --- a/src/mount-setup.c +++ b/src/mount-setup.c @@ -48,9 +48,6 @@ static const MountPoint mount_table[] = { { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NOEXEC|MS_NODEV, true }, { "devpts", "/dev/pts", "devpts", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false }, { "cgroup", "/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, true }, - { "debugfs", "/sys/kernel/debug", "debugfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false }, - { "binfmt_misc", "/proc/sys/fs/binfmt_misc", "binfmt_misc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false }, - { "mqueue", "/dev/mqueue", "mqueue", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false }, }; bool mount_point_is_api(const char *path) { @@ -104,7 +101,7 @@ static int mount_cgroup_controllers(void) { FILE *f; char buf [256]; - /* Mount all available cgroup controllers. */ + /* Mount all available cgroup controllers that are built into the kernel. */ if (!(f = fopen("/proc/cgroups", "re"))) return -ENOENT; diff --git a/units/dev-hugepages.automount b/units/dev-hugepages.automount new file mode 100644 index 00000000..f17b19df --- /dev/null +++ b/units/dev-hugepages.automount @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Huge Pages File System Automount Point +Before=basic.target + +[Automount] +Where=/dev/hugepages diff --git a/units/dev-hugepages.mount b/units/dev-hugepages.mount new file mode 100644 index 00000000..8ffff36a --- /dev/null +++ b/units/dev-hugepages.mount @@ -0,0 +1,24 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Huge Pages File System + +[Mount] +What=hugetlbfs +Where=/dev/hugepages +Type=hugetlbfs diff --git a/units/dev-mqueue.automount b/units/dev-mqueue.automount new file mode 100644 index 00000000..4e343ac4 --- /dev/null +++ b/units/dev-mqueue.automount @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=POSIX Message Queue File System Automount Point +Before=basic.target + +[Automount] +Where=/dev/mqueue diff --git a/units/dev-mqueue.mount b/units/dev-mqueue.mount new file mode 100644 index 00000000..f0cb5f73 --- /dev/null +++ b/units/dev-mqueue.mount @@ -0,0 +1,24 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=POSIX Message Queue File System + +[Mount] +What=mqueue +Where=/dev/mqueue +Type=mqueue diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount new file mode 100644 index 00000000..4466ced9 --- /dev/null +++ b/units/proc-sys-fs-binfmt_misc.automount @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Arbitrary Executable File Formats File System Automount Point +Before=basic.target + +[Automount] +Where=/proc/sys/fs/binfmt_misc diff --git a/units/proc-sys-fs-binfmt_misc.mount b/units/proc-sys-fs-binfmt_misc.mount new file mode 100644 index 00000000..af8e2002 --- /dev/null +++ b/units/proc-sys-fs-binfmt_misc.mount @@ -0,0 +1,24 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Arbitrary Executable File Formats File System + +[Mount] +What=binfmt_misc +Where=/proc/sys/fs/binfmt_misc +Type=binfmt_misc diff --git a/units/sys-kernel-debug.automount b/units/sys-kernel-debug.automount new file mode 100644 index 00000000..b573be94 --- /dev/null +++ b/units/sys-kernel-debug.automount @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Debug File System Automount Point +Before=basic.target + +[Automount] +Where=/sys/kernel/debug diff --git a/units/sys-kernel-debug.mount b/units/sys-kernel-debug.mount new file mode 100644 index 00000000..7badf80e --- /dev/null +++ b/units/sys-kernel-debug.mount @@ -0,0 +1,24 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Debug File System + +[Mount] +What=debugfs +Where=/sys/kernel/debug +Type=debugfs diff --git a/units/var-run.mount b/units/var-run.mount new file mode 100644 index 00000000..aaa1580e --- /dev/null +++ b/units/var-run.mount @@ -0,0 +1,25 @@ +# This file is part of systemd. +# +# Copyright 2010 Lennart Poettering +# +# 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. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with systemd; If not, see . + +[Unit] +Name=Runtime Directory +Before=local-fs.target + +[Mount] +What=tmpfs +Where=/var/run +Type=tmpfs -- 2.39.5