使用getrlimit控制进程使用系统CPU

2023-05-16

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/resource.h>
#include <signal.h>

void sigxcpu_handler(int signum)
{
	printf ("SIGXCPU Received!\n");

	//可以在这里就退出进程 exit(1);
}

void sigkill_handler(int signum)
{
	printf ("SIGKILL received!\n");
}

int main(void)
{
	signal(SIGXCPU, sigxcpu_handler);

	//无效的,kill信号不允许自定义
	signal(SIGKILL, sigkill_handler);

	struct rlimit rl;
	int ret = getrlimit (RLIMIT_CPU, &rl);
	if (ret == -1)
	{
		printf("Failed to getrlimit!\n");
		exit(-1);
	}

	//进程使用cpu时间达到rlim_cur时,操作系统向进程发送SIGXCPU信号,如果进程未终止,则之后每秒发送一次
	rl.rlim_cur = 1;

	//进程使用CPU时间达到rlim_max时,操作系统向进程发送SIGKILL信号,终止进程
	rl.rlim_max = 5;

	ret = setrlimit (RLIMIT_CPU, &rl);
	if (ret == -1)
	{
		printf("Failed to set limit.\n");
		exit(-1);
	}

	while (1)
		;

	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用getrlimit控制进程使用系统CPU 的相关文章

  • Tomcat请求处理过程(Tomcat源码解析五)

    前面已经分析完了Tomcat的启动和关闭过程 xff0c 本篇就来接着分析一下Tomcat中请求的处理过程 在开始本文之前 xff0c 咋们首先来看看一个Http请求处理的过程 xff0c 一般情况下是浏览器发送http请求 gt 建立So

随机推荐

  • Tomcat 设计模式总结(Tomcat源代码阅读系列之八)

    本篇我们将来分析一下Tomcat中所涉及到设计模式 xff0c 本文我们将主要来分析 外观模式 xff0c 观察者模式 xff0c 责任链模式 xff0c 模板方法模式 命令模式 在开始本文之前 xff0c 笔者先说明一下对于设计模式的一点
  • TCP三次握手及关闭时的2MSL分析

    TCP IP三次握手四次挥手 xff0c 是非常重要的 xff0c 这个链接与关闭过程也是很简单的 xff0c 但为什么是三次握手 xff1f 以及为什么要等待2MSL的状态 xff1f 大部分人也许听到这个问题就蒙了 xff0c 这篇博客
  • HashTable源码剖析

    lt span style 61 34 font size 14px font weight normal 34 gt public class Hashtable lt K V gt extends Dictionary lt K V g
  • HashMap源码剖析

    大部分思路都是一样的 xff0c 只是一些细节不一样 xff0c 源码中都标了出来 jdk容器源码还是挺简单的 public class HashMap lt K V gt extends AbstractMap lt K V gt imp
  • Android设置/配置页面,androidx.preference的使用

    一场与Preference的战争 一 介绍二 简单使用以下将会通过简单的Demo实现Preference的样例引入build gradleMainActivity javaactivity main xmlSettingFragment j
  • Android--›迁移到AndroidX指南(含包依赖关系)

    AndroidX发布已经有段时间了 相应的包也都出了1 0 0正式版本 顺势而为 才能得以生存 是时候迁移到AndroidX了 迁移操作本身是很简单的 有菜单命令一键搞定 如下 你以为这样就完事了 还真是 项目妥妥的跑起来了 还不算完事吗
  • 【TensorFlow 入门】2、优化器函数 Optimizer

    文章目录 一 常用的optimizer类二 注意事项 xff1a 在使用它们之前处理梯度三 选通梯度 因为大多数机器学习任务就是最小化损失 xff0c 在损失定义的情况下 xff0c 后面的工作就交给了优化器 因为深度学习常见的是对于梯度的
  • 地面坐标系与机体坐标系的转换和欧拉角

    大家在入门四旋翼飞行器数学模型时第一个遇到的就是坐标系的转换 这篇文章用尽量浅显的语言为大家讲解坐标系的转换的欧拉角 机体坐标系 原点O取在飞机质心处 Xb轴指向机头 Yb轴指向机身右方 Zb指向机身下方 地面坐标系 在地面上选一点Og x
  • 九、设置元素等待

    转载于 xff1a http www testclass net selenium python element wait WebDriver提供了两种类型的等待 xff1a 显式等待和隐式等待 显式等待 显式等待使WebdDriver等待
  • find big file

    bin bash command usage description function usage echo e 34 Usage nt 0 DIR NAME 34 exit Check if user is root if id u 61
  • apache启动报错(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address alrea

    etc init d httpd restart Starting httpd 98 Address already in use make sock could not bind to address 80 98 Address alre
  • linux 查看目录大小和查看磁盘使用情况

    作者 xff1a 北南南北 来自 xff1a LinuxSir Org 提要 xff1a Linux 磁盘分区表 文件系统的查看 统计的工具很多 xff0c 有些工具是多功能的 xff0c 不仅仅是查看磁盘的分区表 xff0c 而且也能进行
  • Sublime Text 2 for Linux 的安装、配置汇总

    Sublime Text 2是一款跨平台文本编辑器 xff0c 支持Windows xff0c Linux xff0c Mac os 特色功能 xff1a 良好的扩展功能 Package 右边没有滚动条 xff0c 取而代之的是代码缩略图
  • Vim的行号、语法显示等设置(.vimrc文件的配置)以及乱码解决

    在终端下使用vim进行编辑时 xff0c 默认情况下 xff0c 编辑的界面上是没有显示行号 语法高亮度显示 智能缩进 等功能的 为了更好的在vim下进行工作 xff0c 需要手动设置一个配置文件 xff1a vimrc 在启动vim时 x
  • DNS解析过程详解

    先说一下DNS的几个基本概念 xff1a 一 xff0e 根域 就是所谓的 xff0c 其实我们的网址www baidu com在配置当中应该是www baidu com xff08 最后有一点 xff09 xff0c 一般我们在浏览器里输
  • 域名解析中A记录、CNAME、MX记录、NS记录的区别和联系

    1 A记录 又称IP指向 xff0c 用户可以在此设置子域名并指向到自己的目标主机地址上 xff0c 从而实现通过域名找到服务器 说明 xff1a 指向的目标主机地址类型只能使用IP地址 xff1b 附加说明 xff1a 1 泛域名解析即将
  • Android--›最万能的TabLayout(不仅仅是TabLayout)

    DslTabLayout Android界最万能的TabLayout 不仅仅是TabLayout 特性 支持任意类型的child视图 支持任意类型Drawable的指示器 支持智能开启横向滚动 支持高凸模式 允许某个child高出一节显示
  • ubuntu20.04启用root账户登录

    1 sudo passwd root 2 sudo vim usr share lightdm lightdm conf d 50 ubuntu conf 文件末新增2行 greeter show manual login 61 true
  • /bin/bash^M: bad interpreter: No such file or directory

    执行一个脚本install sh 时 一直是提示我 bash install sh bin bash M bad interpreter No such file or directory 出现上面错误的原因之一是脚本文件是DOS格式的 即
  • 使用getrlimit控制进程使用系统CPU

    include lt stdio h gt include lt stdlib h gt include lt string h gt include lt sys resource h gt include lt signal h gt