Linux环境-日志&资源和限制

日志,用于记录程序的活动,错误指示、警告或是与系统有关的一般信息。

/usr/adm 或 /var/log目录。

文件/var/log/messages包含所有的系统信息

文件/var/log/mail包含所有的邮件系统日志信息

文件/var/log/debug包含调试信息

UNIX规范通过syslog函数为所有程序产生日志信息提供了一个接口

priority 指定本条日志的优先级,该参数是 facility(由openlog在日志写入前设定)与严重级别的按位或。

日志包含消息头(设施值facility与实践)和消息体(message参数),message参数类似于printf的格式字符串。转换控制符%m可以用于插入与错误变量errno当前值对应的出错消息字符串。

   

eg.程序不会再控制台上输出,但是会在日志中记录程序执行以及程序输出的错误信息(打开一个不存在的文件)

一些改变日志信息的其他函数,char *iddent,可以用来标识是哪个程序产生的日志文件,字符串将会添加在日志信息前面.facility参数记录被syslog()调用的默认设施值,logopt参数对后续syslog调用的行为进行配置,是表中多个参数的按位或。

openlog()函数会打开一个文件描述符,可以用closelog()关闭,注意,在调用syslog之前不需要调用openlog(),它会自行打开日志设施。

可以使用LOG_MASK(priority)为日志创建掩码 LOG_UPTO(priority)创建一个由指定优先级之上的所有优先级构成的掩码。

 

资源和限制

limits.h中定义了许多代表操作系统方面限制的显式常量

头文件sys/resource.h提供了资源操作方面的定义,其中对程序长度、执行优先级和文件资源等方面的限制进行查询和设置

id_t是一个整数类型,它用于用户和组标识符。rusage结构用来确定当前程序已经耗费了多少CPU时间

每个运行的程序都有一个与之关联的优先级,优先级越高的程序将分配到更多的CPU可用时间

普通用户只能降低其程序的优先级,而不能提高

程序默认的优先级是0,正数优先级用于后台任务,他们只在没有比他们优先级还高的程序正在运行时才会被运行。负数使一个程序运行更频繁,获得更多的CPU时间。优先级的有效范围是-20~+20

 

Linux系统资源限制

getrlimit()和setrlimit(),两个函数都使用结构rlimit来描述资源限制。分为软、硬限制,rlim_t是一个整数类型,用来描述资源级别。

软限制是一个建议性的,最好不要超过的限制,如果超越可能会导致库函数返回错误。

硬限制如果被超越,则会使系统发送SIGSEGV信号。

程序可以修改软限制为小于硬限制的任何值,它也可以减小自己的硬限制。但只有超级用户权限运行程序才可以增加硬限制。

  

posted @ 2020-01-15 19:57  MrWang_tju  阅读(317)  评论(0编辑  收藏  举报