addswap revision 251660
116Salm#!/bin/sh
216Salm#
316Salm# Add additional swap files
416Salm#
516Salm# $FreeBSD: head/etc/rc.d/addswap 251660 2013-06-12 16:44:17Z crees $
616Salm#
716Salm
8# PROVIDE: addswap
9# REQUIRE: FILESYSTEMS kld
10# BEFORE:  netif
11# KEYWORD: nojail shutdown
12
13. /etc/rc.subr
14
15name="addswap"
16start_cmd="addswap_start"
17stop_cmd="addswap_stop"
18
19addswap_start()
20{
21	case ${swapfile} in
22	[Nn][Oo] | '')
23		;;
24	*)
25		if [ -w "${swapfile}" ]; then
26			check_startmsgs && echo "Adding ${swapfile} as additional swap"
27
28			if [ -n "${swapfile_mdunit}" ]; then
29				mdev="/dev/md${swapfile_mdunit#md}"
30				mdconfig -a -t vnode -f "${swapfile}" -u ${swapfile_mdunit}
31			else
32				mdev="/dev/`mdconfig -a -t vnode -f "${swapfile}"`"
33			fi
34
35			if [ $? -eq 0 ]; then
36				swapon ${mdev}
37			else
38				echo "error creating swapfile device"
39			fi
40		fi
41		;;
42	esac
43}
44
45addswap_stop()
46{
47	case ${swapfile} in
48	[Nn][Oo] | '')
49		;;
50	*)
51		if [ -n "${swapfile_mdunit}" ]; then
52			mdev="/dev/md${swapfile_mdunit#md}"
53		else
54			mdev="/dev/`mdconfig -lv | grep "${swapfile}" | cut -f1`"
55			swapfile_mdunit=${mdev#md}
56		fi
57		if [ -n "${swapfile_mdunit}" ]; then
58			swapctl -l | grep -q ${mdev}
59			if [ $? -eq 0 ]; then
60				echo "Dismounting swapfile ${swapfile}"
61				swapoff ${mdev} && mdconfig -d -u ${swapfile_mdunit}
62			fi
63		fi
64		;;
65	esac
66}
67
68load_rc_config $name
69run_rc_command "$1"
70