Compare commits

...

3 Commits

Author SHA1 Message Date
William Hubbs
eedafe0f1a version 0.43.5 2021-08-20 11:33:49 -05:00
William Hubbs
7f634589f1 update ChangeLog 2021-08-20 11:33:16 -05:00
Matt Whitlock
291cddb72b supervise-daemon: implement SSD_IONICELEVEL
supervise-daemon was apparently overlooked when support for the
SSD_IONICELEVEL environment variable was added. This commit brings
supervise-daemon up to parity with start-stop-daemon with respect to
this environment variable.
2021-08-20 11:28:08 -05:00
4 changed files with 35 additions and 2 deletions

View File

@@ -1,3 +1,20 @@
commit 291cddb72b1e00c0708e2b4c2278f9fbd0db007e
Author: Matt Whitlock <gentoo@mattwhitlock.name>
Commit: William Hubbs <w.d.hubbs@gmail.com>
supervise-daemon: implement SSD_IONICELEVEL
supervise-daemon was apparently overlooked when support for the
SSD_IONICELEVEL environment variable was added. This commit brings
supervise-daemon up to parity with start-stop-daemon with respect to
this environment variable.
commit 002e25a74ac8eff31f9aa804fbda77b97f2ef944
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 2ac620cf53fbbd201927055b771d59f16086ddc4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.43.4
VERSION= 0.43.5
PKG= ${NAME}-${VERSION}

View File

@@ -156,6 +156,10 @@ The same thing as
but with the standard error output.
.El
.Sh ENVIRONMENT
.Va SSD_IONICELEVEL
can also set the IO scheduling priority of the daemon, but the command line
option takes precedence.
.Pp
.Va SSD_NICELEVEL
can also set the scheduling priority of the daemon, but the command line
option takes precedence.

View File

@@ -423,7 +423,8 @@ static void child_process(char *exec, char **argv)
if ((strncmp(env->value, "RC_", 3) == 0 &&
strncmp(env->value, "RC_SERVICE=", 11) != 0 &&
strncmp(env->value, "RC_SVCNAME=", 11) != 0) ||
strncmp(env->value, "SSD_NICELEVEL=", 14) == 0)
strncmp(env->value, "SSD_NICELEVEL=", 14) == 0 ||
strncmp(env->value, "SSD_IONICELEVEL=", 16) == 0)
{
p = strchr(env->value, '=');
*p = '\0';
@@ -733,6 +734,17 @@ int main(int argc, char **argv)
if (sscanf(tmp, "%d", &nicelevel) != 1)
eerror("%s: invalid nice level `%s' (SSD_NICELEVEL)",
applet, tmp);
if ((tmp = getenv("SSD_IONICELEVEL"))) {
int n = sscanf(tmp, "%d:%d", &ionicec, &ioniced);
if (n != 1 && n != 2)
eerror("%s: invalid ionice level `%s' (SSD_IONICELEVEL)",
applet, tmp);
if (ionicec == 0)
ioniced = 0;
else if (ionicec == 3)
ioniced = 7;
ionicec <<= 13; /* class shift */
}
/* Get our user name and initial dir */
p = getenv("USER");