Você pode ligar um script ao Alt + SysRq se modificar as origens do kernel. O tratamento do Alt + SysRq é definido em drivers/tty/sysrq.c
. Por exemplo, o Alt + SysRq + f chama a função sysrq_handle_moom()
que agenda uma chamada de out_of_memory()
para eliminar um processo.
static void moom_callback(struct work_struct *ignored)
{
/* ... */
if (!out_of_memory(&oc))
/* ... */
}
static DECLARE_WORK(moom_work, moom_callback);
static void sysrq_handle_moom(int key)
{
schedule_work(&moom_work);
}
static struct sysrq_key_op sysrq_moom_op = {
.handler = sysrq_handle_moom,
.help_msg = "memory-full-oom-kill(f)",
.action_msg = "Manual OOM execution",
.enable_mask = SYSRQ_ENABLE_SIGNAL,
};