You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
827 B
31 lines
827 B
/* setidle.c: tell kernel to use SCHED_IDLE policy for an existing process
|
|
and its future descendents. These background processes run only when some
|
|
cpu would otherwise be idle. The process's priority is never dynamically
|
|
escalated to the point where its I/O actions may compete with that of
|
|
higher priority work */
|
|
|
|
#include <sched.h>
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
|
|
#define SCHED_IDLE 6006
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
int pid;
|
|
struct sched_param param = { 0 };
|
|
|
|
if (argc != 2) {
|
|
printf("usage: %s pid\n", argv[0]);
|
|
return EINVAL;
|
|
}
|
|
|
|
pid = atoi(argv[1]);
|
|
|
|
if (sched_setscheduler(pid, SCHED_IDLE, ¶m) == -1) {
|
|
perror("error sched_setscheduler");
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|