控制脚本
1.处理信号
Linux利用信号与运行在系统中的进程进行通信,常见的信号:
信号 值 描述
1 STGHUP 挂起进程
2 SIGINT 终止进程
3 SIGQUIT 停止进程
9 SIGKILL 无条件终止
15 SIGTERM 尽可能终止进程
17 SIGSTOP 无条件停止进程,但不是终止进程
18 SIGTSTP 停止或暂停进程,但不终止进程
19 SIGCONT 停止运行停止的进程
2.生成信号
中断进程
Ctrl+c组合键会生成SIGINT信号,停止shell中当前运行的进程
Ctrl+z组合键会生成一个SIGTSTP信号,停止shell中运行的任何进程
3.捕获信号
trap命令允许你来指定shell脚本要监看并从shell中拦截Linux信号。
如果脚本中收到了trap命令中列出的信号,该信号不再由shell处理,
而是由本地处理
格式:trap commands signals
4.捕获脚本退出
要捕获sehll脚本的退出,只要在trap命令后加上EXIT信号就行
如:
trap "echo Goodbye.." EXIT
5.以后台模式运行脚本
以后台模式运行脚本非常简单,只要在命令后加个&就可以了
6.在非控制台下运行脚本
这可以用nohup命令来实现
如
nuhup ./test1.sh &
7.作业控制
作业控制中的关键命令是jobs命令,jobs命令允许查看shell当前
正在处理的作业,想要查看作业的PID,可以在jobs命令中加入-l
重启停止的作业:
bg PID
8.优先级
调度优先级是内核分配给进程的CPU时间。在Linux系统中,由shell
启动的所有进程的调度优先级默认都是相同的。
调度优先级是个整数值,从-20最高到+19最低,默认情况下都是0
nice -n 可以降低进程的优先级,只能降低不能提高。
renice 命令可以降低正在运行进程的优先级