Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142603283
D5176.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D5176.id.diff
View Options
Index: head/etc/defaults/rc.conf
===================================================================
--- head/etc/defaults/rc.conf
+++ head/etc/defaults/rc.conf
@@ -253,6 +253,7 @@
syslogd_enable="YES" # Run syslog daemon (or NO).
syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different one.
syslogd_flags="-s" # Flags to syslogd (if enabled).
+syslogd_oomprotect="YES" # Don't kill syslogd when swap space is exhausted.
altlog_proglist="" # List of chrooted applicatioins in /var
inetd_enable="NO" # Run the network daemon dispatcher (YES/NO).
inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one.
Index: head/etc/rc.subr
===================================================================
--- head/etc/rc.subr
+++ head/etc/rc.subr
@@ -45,6 +45,7 @@
SYSCTL="/sbin/sysctl"
SYSCTL_N="${SYSCTL} -n"
SYSCTL_W="${SYSCTL}"
+PROTECT="/usr/bin/protect"
ID="/usr/bin/id"
IDCMD="if [ -x $ID ]; then $ID -un; fi"
PS="/bin/ps -ww"
@@ -755,6 +756,8 @@
#
# ${name}_nice n Nice level to run ${command} at.
#
+# ${name}_oomprotect n Don't kill ${command} when swap space is exhausted.
+#
# ${name}_user n User to run ${command} as, using su(1) if not
# using ${name}_chroot.
# Requires /usr to be mounted.
@@ -944,7 +947,8 @@
_nice=\$${name}_nice _user=\$${name}_user \
_group=\$${name}_group _groups=\$${name}_groups \
_fib=\$${name}_fib _env=\$${name}_env \
- _prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon}
+ _prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon} \
+ _oomprotect=\$${name}_oomprotect
if [ -n "$_user" ]; then # unset $_user if running as that user
if [ "$_user" = "$(eval $IDCMD)" ]; then
@@ -1182,6 +1186,26 @@
;;
esac
+
+ # Apply protect(1) to the PID if ${name}_oomprotect is set.
+ case "$rc_arg" in
+ start)
+ if [ -n "$_oomprotect" ]; then
+ if [ -f "${PROTECT}" ]; then
+ pid=$(check_process $command)
+ case $_oomprotect in
+ [Aa][Ll][Ll])
+ ${PROTECT} -i -p ${pid}
+ ;;
+ [Yy][Ee][Ss])
+ ${PROTECT} -p ${pid}
+ ;;
+ esac
+ fi
+ fi
+ ;;
+ esac
+
return $_return
done
Index: head/share/man/man8/rc.subr.8
===================================================================
--- head/share/man/man8/rc.subr.8
+++ head/share/man/man8/rc.subr.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 12, 2014
+.Dd February 4, 2016
.Dt RC.SUBR 8
.Os
.Sh NAME
@@ -604,6 +604,16 @@
Only supported after
.Pa /usr
is mounted.
+.It Va ${name}_oomprotect
+.Xr protect 1
+.Va command
+from being killed when swap space is exhausted.
+If
+.Em YES
+is used, no child processes are protected.
+If
+.Em ALL ,
+protect all child processes.
.It Va ${name}_program
Full path to the command.
Overrides
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jan 22, 10:43 AM (3 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27822762
Default Alt Text
D5176.id.diff (2 KB)
Attached To
Mode
D5176: Add ${name}_oomprotect to rc.conf
Attached
Detach File
Event Timeline
Log In to Comment