通俗的讲一个程序的主要状态包括:运行、挂起(等待)、死亡。
linux环境下我们首先要理解 "&" 符号的作用,它是将前台执行的进程可放到后台执行。
fg: 将后台进程调到前台运行
bg: 将前台进程调到后台运行
fg英文单词应该是frontground吧,bg对应background。
来看一个最简单的死循环例子(test.c):
int main(int argc, char *argv[]) {
for(;;);
return 0;
}
$gcc test.c
$./a.out
这时程序在前台执行,会一直卡在这。这时如果你想做别的操作就必须让程序到后台运行,步骤:
1. 在控制台Ctrl+z,让程序状态由运行状态(Running)--->挂起(Stopped)
2. 执行命令:"jobs",查看当前的shell环境中已启动的作业状态,我这边显示的是: [1]+ Stopped ./a.out & (其中[1]代表第1个作业)
3. 执行命令:"bg 1" (执行完显示:[1]+ ./a.out &,其中&就是以后台形式执行)
4. 这时我们在执行"jobs"会发现显示为: [1]+ Running ./a.out &
5. 如果我们又想将a.out放到前台来执行则执行:"fg 1"