37 lines
		
	
	
		
			786 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			786 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| #!/sbin/runscript
 | |
| # Copyright 2007-2008 Roy Marples
 | |
| # All rights reserved
 | |
| 
 | |
| description="Saves a kernel dump."
 | |
| 
 | |
| depend()
 | |
| {
 | |
| 	need checkfs
 | |
| 	before swap
 | |
| }
 | |
| 
 | |
| start()
 | |
| {
 | |
| 	local dump_dir=${dump_dir:-/var/crash}
 | |
| 	if ! [ -d "${dump_dir}" ]; then
 | |
| 		mkdir -p "${dump_dir}"
 | |
| 		chmod 700 "${dump_dir}"
 | |
| 	fi
 | |
| 
 | |
| 	if [ "${RC_UNAME}" = "FreeBSD" ]; then
 | |
| 		# Don't quote ${dump_device}, so that if it's unset,
 | |
| 		# savecore will check on the partitions listed in fstab
 | |
| 		# without errors in the output
 | |
| 		savecore -C "${dump_dir}" ${dump_device} >/dev/null
 | |
| 	else
 | |
| 		ls "${dump_dir}"/bsd* > /dev/null 2>&1
 | |
| 	fi
 | |
| 	[ $? = 0 ] || return 0
 | |
| 
 | |
| 	local sopts="${dump_dir} ${dump_device}"
 | |
| 	yesno ${dump_compress} && sopts="-z ${sopts}"
 | |
| 	ebegin "Saving kernel core dump in ${dump_dir}"
 | |
| 	savecore ${sopts} >/dev/null
 | |
| 	eend $?
 | |
| }
 |