常用的进程:
<1>交互进程
<2>批处理进程
<3>守护进程
定义:守护进程(Daemon)是一种运行在后台的一种特殊的进程。
在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控
此类程序会被以进程的形式初始化。它常常在系统启动时开始运行,在系统关闭时终止。
控制终端:
1.在linux系统中,由于在linux中,每个系统与用户进行交流的界面成为终端,每一个从此终
端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端。
2.当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这
种限制,它脱离于终端并且在后台运行。
3.它脱离终端的目的是为了避免进程在运行的过程中的信息,并且进程也不会被任何终端
所产生的终端信息所打断。
查看守护进程:
ps axj 查看守护进程,TPGID为-1的为守护进程
syslog是linux系统默认的日志守护进程。默认配置文件是/etc/syslog.conf文件
三个特点:
后台运行:1.首先所谓的后台运行过程是一般是在图形界面或是终端不可见的
独立于终端:2.而独立于终端是说它不和终端联系,运行之后一般不接受终端的输入也 不向终端输出
完成一定的任务:3.每一个守护进程的运行都是为了完成一定的任务而运行的,这些任 务一般都是系统相关的任务。
进程组:
1.每运行一个程序或是命令就会产生一个进程组,而每一个进程组
有一个组长进程.
[和我们创建用户一样,每创建一个用户都会有一个用户组。]
2.进程组由进程组号(GID)标识,进程组号(GID)为组长进程PID,一般进程组的第一个进程是组长进程
3.多个进程进程组成我们的进程组
图示:
会话:一次登录形成一个会话,一个会话可包含多个进程组(前台或后台), 但只能有一个前台进程 组.,由多个进程组组成我们的会话
创建守护进程的步骤:
1.创建子进程,父进程退出
fork()
exit();
2.在子进程中创建的新会话 [脱离控制终端]
3.改变进程的工作目录到"/"
chdir("/")
使用fork创建的子进程继承了父进程的当前工作目录。守护进程不应当使用父进程
的工作目录,应该设置自己的工作目录,通常可以通过chdir()来完成,一般可以将
其设置为根目录。
4.重设文件掩码
umask(0)
守护进程从父进程继承来的文件创建方式掩码可能会拒绝设置某些许可权限,
文件权限掩码是指屏蔽掉文件权限中的对应位。
5.关掉不需要的文件描述符号
close(0);
close(1)
close(2)
[0,1,2]==>标准输入、标准输出、标准出错
图示