Linux服务器程序规范
除了网络通信外,Linux高防服务器程序通常还一定要考虑许多其他细节问题。这些细节问題涉及面广且零碎,而且基础上是模板式的,所以我们称之为服务器程序规范。比如:
Linux服务器程序一般以后台过程情势运行。后台过程又称守护过程( daemon)。它没有把持终端,因而也不会心外吸收到用户输入。守护过程的父过程通常是init过程(PID为1的过程)。
Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器还能输出日志到专门的UDP服务器。大部分后台过程都在/ rar/log目录下拥有自己的日志目录。
Linux服务器程序一般以某个专门的非root身份运行。比如mysqld、hpd、rsyslogd等后台过程,分辨拥有自己的运行账户ysql、 apache和 rsyslogd。
Linux服务器程序通常是可配置的。服务器程序通常能处理很多命令行选项,如果一次运行的选项太多,则可以用配置文件来管理。绝大多数服务器程序都有配置文件,并存放在/ete目录下。比如第4章讨论的squid服务器的配置文件是/etc/ squid3/ squid.conf。
Linux服务器过程通常会在启动的时候生成一个PID文件并存入/arrun目录中,以记载该后台过程的PD。比如 rsyslogd的PID文件是varrun/rsyslogd pid。
Linux服务器程序通常需要考虑系统资源和限制,以预测自身能遭遇多大负荷,比如过程可用文件描写符总数和内存总量等。在开端系统地学习网络编程之前,我们将用一章的篇来探讨服务器程序的一些重要规范。
日志
工欲善其事,必先利其器。服务器的调试和掩护都需要一个专业的日志系统。 Linux供给一个守护过程来处理系统日志 rsyslogd,不过现在的 Lux系统上应用的都是它的升级版 -rsyslogd。
rsyslogd守护过程既能吸收用户过程输出的日志,又能吸收内核日志。用户过程是通过调用 rsyslogd函数生成系统日志的。该函数将日志输出到一个UNX本地区 socket类型(AF_ UNIX)的文件 dev/log中,rsyslogd则监听该文件以获取用户过程的输出。内核日志在老的系统上是通过另外一个守护过程 klog来管理的, rsyslogd利用额外的模块实现了雷同的功效。内核日志由 printk等函数打印至内核的环状缓存(ringbuffer)中。环状缓存的内容直接映射到/ proc/kms文件中。rsyslogd则通过读取该文件获得内核日志。
rsyslogd守护过程在吸收到用户过程或内核输入的日志后,会把它们输出至某些特定的日志文件。默认情况下,调试信思会保存至/ ar/log/debug文件,普通信息保存至/ar/og/ messages文件,内核消息则保存至var/log/ kern. log文件。不过,日志信息具体如何分发,可以在 rsyslogd的配置文件中设置。 rsyslogd的主配置文件是/ etc/rsyslogd,conf,其中重要可以设置的项包含:内核日志输入路径,是不是吸收UDP日志及其监听端口(默认是514,见/etc/ services文件),是不是吸收TCP日志及其监听端口,日志文件的权限,包含哪些子配置文件(比如/ etc/rsyslogd,dconf)。 rsyslogd的子配置文件则指定各类日志的目标存储文件。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP