首页 > 其他 > 详细

十一、脚本控制与计划任务

时间:2020-08-20 12:22:02      阅读:60      评论:0      收藏:0      [点我收藏+]

信号

Linux利用信号与运行在系统中的进程进行通信。

可以编写脚本使其收到特定信号时执行某些命令,从而控制shell脚本的操作。

linux常见信号

信号 描述
1 SIGHUP 挂起进程
2 SIGINT 终止进程
3 SIGQUIT 停止进程
9 SIGKILL 强制终止进程
15 SIGTERM 正常终止进程
17 SIGSTOP 强制停止进程
18 SIGTSTP 停止或暂停进程
19 SIGCONT 继续运行停止的进程

默认情况下bash shell会忽略收到的3,15信号,这样使交互式shell不会意外终止。

bash shell会接收1,2信号,如离开一个交互式shell之前,shell会把1信号即挂起信号传给所有由该shell启动的进程。

通过2信号,中断shell,Linux内核会停止为shell分配CPU处理时间,同样shell会把该信号传给由他启动的进程。

生成信号

linux使用键盘组合键生成停止或暂停两种基本信号

中断进程

ctrl+c生成2信号,终止进程

[root@tzPC ~]# sleep 100
^C

暂停进程

ctrl+z生成18信号,停止shell中运行的进程,停止进程会让程序继续保存在内存中并能从上次暂停的位置继续运行。

[1]是shell分配的作业号,shell把运行中的每个进程称为作业并为其分配唯一的作业号

[root@tzPC ~]# sleep 100
^Z
[1]+  已停止               sleep 100

 

jobs查看后台停止的进程

[root@tzPC ~]# jobs
[1]+  已停止               sleep 100

将后台停止的进程恢复到前台运行

[root@tzPC ~]# fg 1

 如果shell会话中有一个已停止的作业再退出shell时bash会提醒你

[root@tzPC ~]# sleep 100
^Z
[1]+  已停止               sleep 100
[root@tzPC ~]# exit
exit
有停止的任务。

 

使用ps -l查看已停止的作业

[root@tzPC ~]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0  89099  89094  0  80   0 - 28912 do_wai pts/0    00:00:00 bash
0 T     0  91144  89099  0  80   0 - 26976 do_sig pts/0    00:00:00 sleep
0 R     0  91231  89099  0  80   0 - 37235 -      pts/0    00:00:00 ps

知道了已停止作业的PID,可以使用kill命令发送SIGKILL信号终止他

[root@tzPC ~]# kill -9 91144

捕获信号

trap命令

捕获信号并执行其他命令

语法格式

trap commands signals

 

signals可以是数值或linux信号名

#待补充

 

十一、脚本控制与计划任务

原文:https://www.cnblogs.com/tz90/p/13533942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!