将一个进程在后台运行:
./a.out &
bg 将挂起的进程(停止态)在后台执行
fg 把后台运行的进程放到前台运行
kill -19 pid 将进程号为pid的进程变为停止态
kill -18 pid 将进程号为pid的进程从停止态变为后台进程
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
#if 0
int num;
//代码运行到scanf,如果终端没有按下回车
//此时的进程是睡眠态,并且是前台进程 S+
scanf("%d", &num);
//scanf函数执行完毕后,在while这死循环,此时
//是运行态,并且是前台进程 R+
while(1)
{
}
//当按下ctrl z后,当前进程变为停止态 T
//当在终端输入bg后,将停止态的进程变为原来的
//状态,但是是一个后台进程 R
//当在终端输入fg后,将后台进程又变为前台进程 R+
#endif
//如果在执行程序的时候加了&,表示当前进程要在后台执行 ./a.out
//使用命令fg 可以将其变为前台执行
//使用ctrl z可以将当前进程停止
//使用bg 可以将停止的进程在后台执行
while(1)
{
printf("hello world\n");
sleep(1);
}
return 0;
}
![](https://img-blog.csdnimg.cn/img_convert/e6d9fcaca42943bc932faf912ce8d2a9.png)