后台服务程序不受终端的控制,常驻内存中,没有互交的页面。

周期性或通过事件唤醒的方式来执行任务

  1. 采用&

./main.exe & 在后台运行

  1. 采用 fork
#include <sys/types.h>
#include <unistd.h>

linux查看进程可以用:ps -ef,ps aux这两个命令。

ps -ef | grep name

kill pid

killall name 结束进程

#include <iostream>
#include <sys/types.h>
#include <unistd.h>
 
int main()
{
    pid_t pid;
    pid = fork();
    //根据pid是否大于0判断是父进程还是子进程
    if (pid > 0) {  //父进程
        std::cout << "Parent process" << '\\n';
        return 0;
    }
		//子进程
    std::cout << "Child process" << '\\n';
    return 0;
}
#include<stdio.h>
#include<iostream>
#include <unistd.h>
#include <sys/types.h>
using namespace std;

void exetash()
{
    cout<<"do one job!"<<endl;
}
int main()
{
    if(fork()>0) return 0;  //离开终端控制
    int ii=0;
    while(1)
    {
        exetash();
        sleep(5);
    }
}
  1. 在程序中,可以捕获信号,编写信息处理函数,即收到信号后执行的代码

signal信号