IDLE(2) Linux Programmer's Manual IDLE(2)

idle - make process 0 idle

#include <unistd.h>
int idle(void);

idle() is an internal system call used during bootstrap. It marks the process's pages as swappable, lowers its priority, and enters the main scheduling loop. idle() never returns.
Only process 0 may call idle(). Any user process, even a process with superuser permission, will receive EPERM.

idle() never returns for process 0, and always returns -1 for a user process.

EPERM
Always, for a user process.

Since Linux 2.3.13, this system call does not exist anymore.

This function is Linux-specific, and should not be used in programs intended to be portable.
2012-12-31 Linux