一、命令说明

  • &: 将程序放到后台运行
  • Ctrl-z: 将程序放到后台运行并暂停
  • jobs: 查看后台进程
  • fg: 把后台的进程放到前台执行
  • bg: 把后台暂停的进程放到前台执行

写一个测试程序:

#include <iostream>
using namespace std;

int main(){
    int a;
    cin >> a;  // 阻塞程序
    cout << a << endl;
    return 0;
}
> g++ main -o app
> ./app 
123
123

二、测试

使用&app放到后台运行:

$ ./app &
[1] 21862  # 挂起后台返回一个后台id[1]和系统进程id[21862]
$ jobs  # 查看后台的进程
[1]+  Stopped                 ./app
$ ps aux | grep ./app  # 打印进程信息
ma       21862  0.0  0.0  11740  1000 pts/2    T    17:19   0:00 ./app
ma       21892  0.0  0.0 103320   852 pts/2    R+   17:19   0:00 grep ./app

前台继续运行:

> fg % 1  # fg 1也可以,fg后面的id不是进程id
./app
234  # 调起后台进程
234

Ctrl-z将会把程序放到后台挂起,进程在后台不属于运行态,如要后台运行需使用bg命令:

> ./app 
^Z
[1]+  Stopped                 ./app
> bg 1
[1]+ ./app &
最后修改:2018 年 03 月 16 日
如果觉得我的文章对你有用,请随意赞赏