aboutsummaryrefslogtreecommitdiff
path: root/init.d/devfs.in
diff options
context:
space:
mode:
Diffstat (limited to 'init.d/devfs.in')
-rw-r--r--init.d/devfs.in36
1 files changed, 36 insertions, 0 deletions
diff --git a/init.d/devfs.in b/init.d/devfs.in
new file mode 100644
index 00000000..2e140f0a
--- /dev/null
+++ b/init.d/devfs.in
@@ -0,0 +1,36 @@
+#!@PREFIX@/sbin/runscript
+# Copyright 2007-2008 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+
+description="Mount system critical filesystems in /dev."
+
+depend() {
+ use dev
+ keyword noprefix
+}
+
+start() {
+ # Mount required stuff as user may not have then in /etc/fstab
+ for x in \
+ "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
+ "tmpfs /dev/shm 1777 ,nodev shm" \
+ ; do
+ set -- ${x}
+ grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
+ mountinfo -q "$2" && continue
+
+ if [ ! -d "$2" ]; then
+ mkdir -m "$3" -p "$2" >/dev/null 2>&1 || \
+ ewarn "Could not create $2!"
+ fi
+
+ if [ -d "$2" ]; then
+ ebegin "Mounting $2"
+ if ! fstabinfo --mount "$2"; then
+ mount -n -t "$1" -o noexec,nosuid"$4" "$5" "$2"
+ fi
+ eend $?
+ fi
+ done
+ return 0
+}