有的系统提供pgrep和pkill。它们能根据进程名称结束进程,详细自行看manual。
关于捕捉进程信号。进程会向内核注册哪些它们想要处理的信号。它们标明在signal()程序库调用的参数里。man -a signal 可以查看所有关于信号的manual。trap可引起shell注册信号处理器(signal handler),抓取指定的信号。trap取得一个字符串参数,其包含采取捕捉时要被执行的命令列表,紧接着一个要设置捕捉的信号列表。
下边展示一个小型shell脚本:looper,它的功能是使用trap命令,说明被抓取(caught)与未被抓取的信号。
#! /bin/sh -
trap 'echo Ignoring HUP ... ' HUP
trap 'echo Terminating on USR1 ... ; exit 1 ' USR1
while true
do
sleep 2
date >/dev/null
done
]
$ looper & #运行这个脚本于后台
[1] 24179
$ kill -HUP 24179
Ignoring HUP ...
$ kill -USR1 24179
Terminating on USR1 ...
[1]+Done(1)
其他进程控制命令自行测试,或者搜文章学习。后边又讲了一些进程的日志。
进程延迟。sleep命令暂停执行一段时间后唤醒。at是延迟至特定时间,这个命令在不同系统有差异,但下列例子普遍适用:
at 21:00 #晚上9点执行
at now #立刻执行
at now + 10 minutes #10分钟后执行
at now + 8 hours
at 0400 tomorrow #明天早上4点执行
at 14 July
at noon + 15 minutes #今天下午12:15执行
at teatime #下午16:00执行
at允许相当复杂的时间指定 。接受HH:MM的时间式样,如果时间过了则为第二天这个时间。midnight是午夜,noon中午,teatime下午4点,也可以适用AM或PM后缀指定上下午,也可以month-name dat加上可选的年份式样来指定日期,或者给出MMDDYY、MM/DD/YY或DD.MM.YY来执行日期。日期单位有minutes hours days weeks ,还有today、tomorrow。
atq命令列出at队列里的所有工作,而atrm则是删除它们。batch在系统负载水平允许的时候执行命令,换句话说当平均负载低于0.8或降到了在atrun文件中指定的期望值时运行。
大部分计算机有许多管理工作需要重复执行,像每晚文件系统备份之类的。crontab命令可在指定的时间执行工作,其包括了系统启动时起始的cron daemon。crontab -l 列出你目前工作调度,以crontab -e启动编辑器更新调度。编辑器的选择根据EDITOR环境变量而定,有些计算机会因为未设置此参数而拒绝执行crontab。crontab适用的调度参数:
mm hh dd non weekday command
00-59 00-23 01-31 01-12 0-6(0=Sunday)
前5栏除了使用单一数字外,还可以搭配连字符分隔,指出一段区间,或者使用逗点分隔数字列表或区间。还可以使用星号,指该字段所有可能数字。范例:










