除了网络通信外,服务器程序还会考虑其它问题,十分零碎且广泛。并且已经形成了一套规范;
1.日志系统
我们知道,日志系统对于服务器的调试和维护至关重要。那么,linux提供了一个守护进程syslogd来处理系统日志,现在用的都是它的升级版rsyslogd。
rsyslogd既能够接受用户进程输出的日志,也可以接受内核输出的日志。
用户进程是通过调用syslog函数来生成日志,该日志将保存到UNIX类型的文件/dev/log中。rsyslogd就是监听这个文件以获取输出的日志。
内核日志可以由printk函数打印至内核的环状缓存,其中的内容直接映射到proc/kmsg中,rsyslogd通过这个文件获取日志。
rsyslogd获取日志信息后,会把他们保存至特定的文件夹,比如调试信息保存到var/log/debug,普通信息到var/log/message,内核信息到var/log/kern.log.
1.1 syslog函数
2、用户信息
UID(真实用户ID),EUID(有效用户ID),GID(真实组ID),EGID(有效组ID)
用户信息对于安全性很重要,比如大部分服务器必须以root身份启动,不得以root身份运行。
下面这一系列函数就是获取和设置用户信息的。
一个进程会有用户ID,UID,指的是创建这个进程或文件的用户名。那么EUID的存在是为了方便资源访问。比如,su程序可以修改账户信息,但是访问etc/passwd文件夹是需要root权限的,那么普通用户怎么使用su修改账户信息呢,关键在EUID,它让普通用户使用时,有效用户就是root.
3.1进程组
linux每个进程都属于一个进程组,所以进程除了有PID,还有进程组ID:PGID
3.2会话
3.3ps命令查看进程关系
4.系统资源限制
这一章只是简单说一下规范,这不算核心内容。但是对于服务器的调试和维护很重要。