shell作业控制

作业控制
 
    Bash可以选择在后台或前台运行作业。一个正在运行的程序称为进程或者作业,每个进程有一个进程号,PID。一般情况下运行的程序都是在前台运行的,可 以通过Ctrl+D组合键来发送信号暂停它。暂停的进程可以在后台运行也可以把它送回前台运行,当然也可以终止它。
 

[root@localhost ~]# vi            #打开vi编辑器,并按Ctrl+z暂停它

[1]+  Stopped                 vi
[root@localhost ~]# sleep 400&    #加&,表示在后台运行
[2] 5277
[root@localhost ~]# jobs          #显示当前在后台的作业
[1]+  Stopped                 vi
[2]-  Running                 sleep 400 &
[root@localhost ~]# jobs -l      #显示当前在后台的作业和PID
[1]+  5276 Stopped                    vi
[2]-  5277 Running                 sleep 400 &
[root@localhost ~]# jobs %%      #显示最近加入作业表中的命令
[1]+  Stopped                 vi
[root@localhost ~]# fg %1        #fg把作业号为1的作业调到前台来
[root@localhost ~]# kill %1      #把作业号为1的作业杀死
Vim: Caught deadly signal TERM
Vim: Finished.

 

作业控制命令

命令  含义 
bg  启动被终止的后台作业 
fg 将后台作业调到前台来 
jobs  列出所有正在运行的作业 
kill 向指定作业发送kill信号 
stop 挂起一个后台作业 
stty tostop  当一个后台作业向终端发送输出时就挂起它 
wait[n]  等待一个指定的作业并返回它的退出状态,这里n是一个PID或作业号 
∧Z(Ctrl-Z) 终止(挂起)作业。屏幕上将出现提示符 
   
jobs命令的参数  含义 
%n  作业号n 
%string  以string开头的作业名 
%?string  作业名包含string
%%  当前作业 
%+  当前作业 
%-  当前作业前的一个作业 
-r  列出所有运行的作业 
-s 列出所有挂起的作业

你可能感兴趣的:(shell)