Linux系统作业控制:
job:
前台作业(foregroud):通过终端启动,且启动后会一直占据终端;
后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端);
如何让作业运行于后台?
(1) 运行中的作业
Ctrl+z (相当于19号信号)
注意:送往后台后,作业会转为停止态;
(2) 尚未启动的作业
# COMMAND &
注意:此类作业虽然被送往后台,但其依然与终端相关;如果希望把送往后台的作业剥离与终端的关系:
# nohup COMMAND &
例如 xxx & 作业送往后台后,关闭了终端,该作业也就立即停止了,如果想剥离与终端的关系,关闭终端后还是运行状态,则需要加nohup
查看所有的作业:
# jobs
[root@localhost ~]# jobs
[1] Stopped htop
[2]- Stopped vi /etc/fstab
[3]+ Stopped dstat 1
第一列中的1、2、3表示作业号JOB_NUM,+号表示调回前台不带作业号时的默认作业,-号是排在默认作业后面的
第二列 stopped 表示该进程暂停,处于。
可实现作业控制的常用命令:
# fg [[%]JOB_NUM]:把指定的作业调回前台,也可以不带作业号
# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;(相当于18号信号)
# kill %JOB_NUM:终止指定的作业; 此时的百分号不能省略,否则kill以为是进程号
常用信号:
1) SIGHUP:无须关闭进程而让其重读配置文件;
2)SIGINT:终止正在运行的进程,相当于Ctrl+c
9)SIGKILL:杀死运行中的进程;(立即关闭)
15)SIGTERM:终止运行中的进程;(正常关闭)
18)SIGCONT:让处于停止态的进程进行允许,手动调度。
19)SIGSTOP:让进程处于停止态