version 1.455, 2015/08/03 04:19:25 |
version 1.456, 2015/08/12 17:27:27 |
|
|
# Subroutines (have to come first). |
# Subroutines (have to come first). |
|
|
|
|
# Strip comments (and leading/trailing whitespace if IFS is set) from a file |
# Strip in- and whole-line comments from a file. |
# and spew to stdout. |
# Strip leading and trailing whitespace if IFS is set. |
|
# Usage: stripcom /path/to/file |
stripcom() { |
stripcom() { |
local _file="$1" |
local _file=$1 _line |
local _line |
|
|
|
{ |
[[ -s $_file ]] || return |
while read _line ; do |
|
_line=${_line%%#*} # strip comments |
while read _line ; do |
[ -z "$_line" ] && continue |
_line=${_line%%#*} |
echo $_line |
[[ -n $_line ]] && print -r -- "$_line" |
done |
done <$_file |
} <$_file |
|
} |
} |
|
|
# Update resource limits when sysctl changes. |
# Update resource limits based on login.conf settings. |
# Usage: update_limit -X loginconf_name |
# Usage: update_limit -flag capability |
update_limit() { |
update_limit() { |
local _fl="$1" # ulimit flag |
local _flag=$1 # ulimit flag |
local _lc="$2" # login.conf name |
local _cap=$2 _val # login.conf capability and its value |
local _new _suf |
local _suffix |
|
|
for _suf in "" -cur -max; do |
for _suffix in {,-cur,-max}; do |
_new=`getcap -f /etc/login.conf -s ${_lc}${_suf} daemon 2>/dev/null` |
_val=$(getcap -f /etc/login.conf -s ${_cap}${_suffix} daemon 2>/dev/null) |
if [ X"$_new" != X"" ]; then |
[[ -n $_val ]] || continue |
if [ X"$_new" = X"infinity" ]; then |
[[ $_val == infinity ]] && _val=unlimited |
_new=unlimited |
|
fi |
case $_suffix in |
case "$_suf" in |
-cur) ulimit -S $_flag $_val |
-cur) |
;; |
ulimit -S $_fl $_new |
-max) ulimit -H $_flag $_val |
;; |
;; |
-max) |
*) ulimit $_flag $_val |
ulimit -H $_fl $_new |
return |
;; |
;; |
*) |
esac |
ulimit $_fl $_new |
|
return |
|
;; |
|
esac |
|
fi |
|
done |
done |
} |
} |
|
|