(一)守护进程
当我们了解一个新的知识的时候,我们一般在意的无非就几个点。守护进程是什么,守护进程的意义,守护进程怎么使用等。
在我们了解守护进程是什么的时候。不如用用自己的键盘操作ctrl+shift+Esc进入到任务管理器,然后点击服务选项。
想想:明明我没有打开这些进程,那为什么又会有?
(1) 守护进程是什么?
守护进程(daemon):Linux中的守护进程就像上面任务管理器提到的这些后台服务进程,它们通常在系统启动后就开始运行,没有控制终端,并且也不能和前台的用户进行交互,在系统关闭时才结束。(简单来说:一类特殊的后台进程)
(2) 守护进程的意义
守护进程脱离终端,在后台运行。
①避免执行的信息在终端上显示。
②进程不会被其它终端信息所中断。
(3) 守护进程的两种运行方式
3.1 独立运行的守护进程
独立运行的守护进程:由int脚本负责管理,所有的脚本在/etc/rc,d/init,d/目录下,服务器监听在一个特点的端口上等待客户端的连接(会造成资源浪费)。
如果客户端产生一个连接请求,守护进程就创建一个子服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下一个客户端请求。
3.2 xinetd 管理的守护进程
xinetd(守护进程) 管理的守护进程:xinetd能够同时监听多个指定的端口,在接受用户请求时,它能够根据用户请求的端口不同,启动不同的网络服务进程来处理这些用户请求。
(4) 守护进程的库函数
#include <unistd.h> //头文件包含
int daemon(int nochdir, int noclose);
参数 | 功能 |
---|---|
nochdir | 指定是否要切换当前工作路径到"/"根目录 |
noclose | 指定是否要关闭标准输入、标准输出和标准出错 |
(二)系统日志
上面说到,守护进程会在后台运行,并且也不会在终端上显示。那么我们也就无法知道守护进程运行的状态信息。所以,这时候我们就可以用系统日志去记录,并且也就可以进行查看了。
(1) 系统日志的定义
系统日志:记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。(来源:百度百科)
UNIX的系统日志:通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。
(2) 日志系统syslog()函数
syslog()函数会将输出的信息记录到: /var/log/messages 日志文件中(这个日志文件记录着所有信息,所以这里会存在消息丢失,一般会使用标准文件IO库实现日志系统)
#include <syslog.h> //头文件包含
涉及三个部分:打开日志,写入日志,关闭日志。