Linux的bg和fg命令

我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):

命令如下

ubuntu@clarence:~& top   //按下ctrl + z
[1]+  Stopped                 top
ubuntu@clarence:~$ jobs //查看后台任务
[1]+  Stopped                 top
ubuntu@clarence:~$ fg 1 //在前台运行

浅谈Ctrl-z

我们都知道kill命令可以杀死进程,但是实际上kill是给程序发送信号,信号是操作系统与程序之间进行通信时所采用的几种方式中的一种(最近阅读的操作系统概念中也提到了。)
在使用Ctrl-z和Ctrl-c,终端接受了其中一个按键组合,会给前端运行的程序发送一个信号。使用Ctrl-c的情况下,会发送一个叫做INT的信号;当使用Ctrl-z时,则发送一个叫做TSTP(Terminal Stop终端停止)的信号。程序监听到信号的到来,做出响应。


kill也可以给进程发送信号,下面看看可以发送的信号有哪些:

ubuntu@clarence:~$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

命令小结:

&和&&:
在运行的指令末尾添加"&"可以让命令在后台运行
command1 && command2表示前者执行成功,执行后台命令


bg和fg命令:
如果发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,就可以用Ctrl-z可以挂起这个程序 []中的是作业号,然后我们可以把程序调度到后台执行: bg 作业号


fg 将后台中的命令调至前台继续运行
bg 将一个在后台暂停的命令,变成继续执行


ctrl+z 可以将一个正在前台执行的命令放到后台,并且暂停


jobs 查看当前有多少在后台运行的命令 []里面是序号,不是pid


你可能感兴趣的:(Linux嵌入式开发)