⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noflushd.init

📁 linux 系统控制硬盘旋转和停止的程序(spin down/up)
💻 INIT
字号:
#! /bin/sh -e## /etc/init.d/noflushd: Control userland daemon to spin down idle disks## Test whether the kernel exposes devfs-style names in /proc/partitions.# We do this by probing for '/' in the device name. With devfs, each names# contains slashes. Some oldstyle names (eg. ataraid) also contain slashes,# however, so this routine is not entirely accurate. We err on the side of# devfs because mount failures are handled gracefully anyway.# Returns 0 for devfs, 1 for oldstyle.check_devfs() {	local pass="init"		while read major minor block name stats; do		case "$pass" in		"init")			if test "x$name" = "xname"; then				pass="header_ok"			else				break			fi			;;		"header_ok"|"maybe_devfs")			# Skip empty lines			test -n "$major" || continue			pass="maybe_devfs"			if echo "$name" | grep -qv "/"; then				pass="found_oldstyle"				break			fi			;;		*)			# Cannot happen :-)			pass="illegal"			break			;;		esac	done < /proc/partitions	case "$pass" in	"maybe_devfs")		return 0;;	# kernel talks devfs	"found_oldstyle")		return 1;;	# kernel talks oldstyle	*)		echo -n "Noflushd init: "		echo "parse error in check_devfs/$pass--assuming devfs" 		return 0;;	# parse error; assuming devfs is the safe bet	esac}# Test whether devfs is mounted anywhere in the file system.# If given an optional argument, the routine checks for devfs mounted# on the given mount point.# Parse /proc/mounts directly because a devfs mounted at boot time does not# show up in the output of mount(8).# Returns 0 if found, 1 if not found.check_devfs_mounted() {	test -r /proc/mounts || return 1	while read device mountpoint type cruft; do		if test "x$type" = xdevfs; then			test -n "$1" || return 0			test "x$mountpoint" != "x$1" || return 0		fi	done < /proc/mounts	return 1}mount_devfs() {	test -n "$1" || return	test -d "$1" || mkdir -m 700 -p "$1"	mount -t devfs none "$1"}umount_devfs() {	if check_devfs_mounted "$DEVFS_MNT"; then		echo -n "Trying to unmount private devfs tree..."		if umount "$DEVFS_MNT" >/dev/null 2>&1; then			echo "done."		else			echo "failed."		fi	fi}nfd_start() {	start-stop-daemon --start --quiet --pidfile \		/var/run/$NAME.pid --exec $DAEMON -- $PARAMS}nfd_stop() {	case "$1" in	"byname")		opt="--name $NAME";;	*)		opt="--exec $DAEMON";;	esac	start-stop-daemon --stop --quiet --oknodo --pidfile \	/var/run/$NAME.pid $opt}NAME=noflushdDAEMON="/usr/sbin/$NAME"DESC="No Flush Daemon"DEFAULTS=/etc/default/noflushdDEVFS_MNT=/var/lib/noflushd/devfstest -f $DAEMON || exit 0# Source defaults file; edit that file to configure this script.TIMEOUT=0DISKS=""PARAMS=""if [ -e "$DEFAULTS" ]; then	. "$DEFAULTS"fiif [ -z "$PARAMS" ]; then	if [ -z "$TIMEOUT" ]; then		echo "No default timeout set. Aborting."		echo "To correct, edit $DEFAULTS or run dpkg-reconfigure $NAME"		exit 1	fi	PARAMS="-n $TIMEOUT $DISKS"ficase "$1" in  start)  	if check_devfs && ! check_devfs_mounted; then		echo -n "Mounting private devfs tree..."		if mount_devfs "$DEVFS_MNT"; then			echo "done."		else			echo "failed (trying to go on anyway)."		fi	fi	echo -n "Starting $DESC: "	nfd_start	echo "$NAME."	;;  stop)	echo -n "Stopping $DESC: "  	nfd_stop byname	echo "$NAME."	umount_devfs	;;  restart|force-reload)	echo -n "Restarting $DESC: "	nfd_stop byname	sleep 1	nfd_start	echo "$NAME."	;;  *)	N=/etc/init.d/$NAME	echo "Usage: $N {start|stop|restart|force-reload}" >&2	exit 1	;;esacexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -