Unix/Linux 系统自动化管理之进程管理篇(2)

控制进程争用 CPU 的优先级级别的命令

nice 命令:nice 命令允许您以比命令的正常优先级更低的优先级运行命令。

语法:nice [  - Increment|  -n Increment ] Command [ Argument ... ]

如果您没有指定 Increment 值,nice 命令缺省为递增值 10。您必须有 root 用户权限以在更高的优先级运行命令。进程的优先级通常被称作它的 nice 值。Linux 操作系统的 nice 值范围是 -20 到 19,19 是最低优先级。AIX 操作系统 nice 值的范围是 0 到 39,39 是最低优先级。如果您没有适当的权限就试图增加命令的优先级,nice 命令不会返回错误消息。相反,命令的优先级不会更改,并且系统以它通常的优先级启动命令。

renice 命令:renice 命令改变系统中已经在运行的一个或多个进程的 nice 值,因此改变了优先级。进程可由进程标识、进程组标识或拥有该进程的用户名识别。如果不具有 root 用户权限,则仅可以重新设置自己拥有的进程的优先级。

终止进程的命令

kill 命令:kill 命令发送一个信号(缺省,SIGTERM 信号)到一个正运行的程序。缺省操作一般是停止进程。root 用户可用 kill 命令来停止任何进程。如果不是 root 用户,必须已经启动了要停止的进程。

进程定时启动命令 crontab

为了定期执行命令,可以利用 crontab 定义命令执行的间隔和顺序。crontab 命令用于提交、编辑、列出或删除 cron 作业。一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的。要编辑提交一个 cron 作业,可以使用 crontab -e 命令。crontab -e 命令调用一个编辑会话,允许创建一个 crontab 文件。crontab 文件中的条目必须是一种 cron 守护程序可接受的格式。编辑完成后,

RedHat 系统会自动在 /var/spool/cron 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中。

SUSE 系统会自动在 /var/spool/cron/tabs 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中。

AIX 系统会自动在 /var/spool/cron/crontabs 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中。

以 RedHat 操作系统为例,cron 服务每分钟不仅要读一次 /var/spool/cron 内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用 cron 服务做一些事情。用 crontab 配置是针对某个用户的,而编辑 /etc/crontab 是针对系统的任务。此文件的文件格式如下:


清单 1. /etc/crontab 文件内容
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root // 如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/  // 使用者运行的路径 # run-parts 01 * * * * root run-parts /etc/cron.hourly // 每小时执行 /etc/cron.hourly 目录下的脚本 02 4 * * * root run-parts /etc/cron.daily // 每天执行 /etc/cron.daily 目录下的脚本 22 4 * * 0 root run-parts /etc/cron.weekly // 每星期执行 /etc/cron.weekly 目录下的脚本 42 4 1 * * root run-parts /etc/cron.monthly // 每月去执行 /etc/cron.monthly 目录下的脚本  

列出用户目前的 crontab 可以使用命令:crontab -l UserName

删除用户目前的 crontab 可以使用命令:crontab -r UserName

一个 crontab 文件包含若干个 cron 作业的条目。每个 crontab 文件条目包括 6 个字段,它们被空格或制表符以以下格式分开:

minute hour day_of_month month weekday command

这些字段接收以下值:


表 3. 字段含义
字段
minute   0 到 59  
hour   0 到 23  
day_of_month   1 到 31  
month   1 到 12  
weekday   0 到 6(星期日到星期六)  
command   shell 命令  

必须为每个字段指定一个值。除了 command 字段,这些字段可以包含以下内容:

指定范围内的一个数。要在 5 月运行一个命令,在 month 字段指定 5。 两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行 cron 作业,把 2-5 放到 weekday 字段中。 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在 day_of_month 字段中可指定 1,31。 由两个被破折号分开的数字组成的组合表明了包含的范围,可与由逗号格开的数字列表一起使用。要在一月的第 10 天到第 16 天和最后一天首次运行命令,应该在 day_of_month 字段中指定 1,10-16,31。以上两种也可组合使用。

*(星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28200.html