aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenneth Lakin <kennethlakin@gmail.com>2015-11-03 03:33:06 -0800
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-07-26 12:30:39 -0500
commit94b98430cb83a8f4e62d837100fc357e9eb12ca6 (patch)
tree65ddba6cb989ebf217902aba415a7fed15479be6 /src
parentb19d0a40d7f20987323d5af91469c720ead39561 (diff)
start-stop-daemon: Add SSD_IONICELEVEL
This is the disk IO counterpart to SSD_NICELEVEL. Modified by William Hubbs to add the variable to the start-stop-daemon man page. This fixes #69.
Diffstat (limited to 'src')
-rw-r--r--src/rc/start-stop-daemon.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index 27939c2c..188169fd 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -696,6 +696,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");
@@ -1195,7 +1206,8 @@ int main(int argc, char **argv)
if ((strncmp(env->value, "RC_", 3) == 0 &&
strncmp(env->value, "RC_SERVICE=", 10) != 0 &&
strncmp(env->value, "RC_SVCNAME=", 10) != 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';