日志
1、Linux服务器一般以后台程序运行,后台进程又称为守护进程,该类进程没有控制终端,守护进程的父进程通常是pid为1的进程。
2、Linux服务器有自己的日志系统,大部分后台进程都在var/log目录下拥有自己的进程。
3、Linux服务器一般以专门的非root身份运行,
4、Linux服务器一般是可配置的。大多数配置文件放置再/etc下
5、Linux服务器通常再启动的时候生成一个PID文件放入/var/run目录下
6、Linux服务器还要考虑系统资源和限制。
日志的调试和维护,Linux提供了守护进程来处理系统日志——syslogd或rsyslogd,用户进程通过syslog函数生成系统日志,日志传输到/dev/log中;rsyslogd监听该文件获取用户进程。
syslog函数
#include<syslog.h>
void syslog( int priority,const char* message,...)
设置syslog的日志掩码
#include<syslog.h>
int setlogmask(int maskpri)
关闭日志
#include<syslog.h>
void closelog();
priority 是设施值与日志级别按位或,设施值的默认值为LOG_USER,
#include<syslog.h>
#define LOG_EMERG 0 //系统不可用
#define LOG_ALERT 1 //报警,需要立即采取动作
#define LOG_CRIT 2 //非常严重的情况
#define LOG_ERR 3 //错误
#define LOG_WARNING //警报
#define LOG_NOTICE //通知
#define LOG_INFO //信息
#define LOG_DEBUG //调试
用户信息:UID,EUID,GID,EGID
UID:真实用户ID;
EUID:有效用户;
GID:真实组
EGID:有效组
#include<sys/types.h>
#include<unistd.h>
uid_t getuid();
uid_t geteuid();
gid_t getgid();
gid_t getegid();
int setuid(uid_t uid);
int seteuid(uid_t uid);
int setgid(gid_t gid);
int setegid(gid_t gid);