7 linux服务器程序规范
2015-12-09 13:23
453 查看
1. Linux服务器程序一般以后台进程形式运行。后台进程又称守护进程(daemon),它没有控制终端,因而不会意外接收到用户输入。父进程通常为init(PID为1的进程)
2. Linux服务器程序常有一套日志系统,至少能输出日志到文件,有的高级服务器能输出到专门的udp服务器。大部分后台程序都在/var/log目录下有自己的日志目录
3. Linux服务器程序一般以某个专门的非root身份运行。如mysqld,httpd,syslogd等后台进程,分别拥有自己的运行账户mysql,apache,syslog
4. Linux服务器程序通常是可配置的。服务器程序通常能处理很多命令行选项,如果一次运行的选项太多,则可以用配置文件来管理。绝大多数服务器程序都有配置文件,并存放在/etc目录下
5. Linux服务器程序通常会在启动的时候生成一个pid文件并存放入/var/run目录中,以记录该后台进程的pid。比如syslogd的pid文件是/var/run/syslogd.pid
6. Linux服务器程序通常需要考虑系统资源和限制,以预测自身能承受多大负荷,比如进程可用文件描述符总数和内存总量
这一章讲了以上内容的系统API实现函数,具体内容看书
强调以下daemon函数:
作用:
经过这个函数调用后的程序将运行在后台,成为一个daemon程序,而linux下大多的服务都是以此方式运行的
参数:
当 nochdir为零时,当前目录变为根目录,否则不变;
当 noclose为零时,标准输入、标准输出和错误输出重导向为/dev/null,也就是不输出任何信 息,否则照样输出。
返回值:
deamon()调用了fork(),如果fork成功,那么父进程就调用_exit(2)退出,所以看到的错误信息 全部是子进程产生的。如果成功函数返回0,否则返回-1并设置errno
2. Linux服务器程序常有一套日志系统,至少能输出日志到文件,有的高级服务器能输出到专门的udp服务器。大部分后台程序都在/var/log目录下有自己的日志目录
3. Linux服务器程序一般以某个专门的非root身份运行。如mysqld,httpd,syslogd等后台进程,分别拥有自己的运行账户mysql,apache,syslog
4. Linux服务器程序通常是可配置的。服务器程序通常能处理很多命令行选项,如果一次运行的选项太多,则可以用配置文件来管理。绝大多数服务器程序都有配置文件,并存放在/etc目录下
5. Linux服务器程序通常会在启动的时候生成一个pid文件并存放入/var/run目录中,以记录该后台进程的pid。比如syslogd的pid文件是/var/run/syslogd.pid
6. Linux服务器程序通常需要考虑系统资源和限制,以预测自身能承受多大负荷,比如进程可用文件描述符总数和内存总量
这一章讲了以上内容的系统API实现函数,具体内容看书
强调以下daemon函数:
#include <unistd.h> int daemon(int nochdir, int noclose);
作用:
经过这个函数调用后的程序将运行在后台,成为一个daemon程序,而linux下大多的服务都是以此方式运行的
参数:
当 nochdir为零时,当前目录变为根目录,否则不变;
当 noclose为零时,标准输入、标准输出和错误输出重导向为/dev/null,也就是不输出任何信 息,否则照样输出。
返回值:
deamon()调用了fork(),如果fork成功,那么父进程就调用_exit(2)退出,所以看到的错误信息 全部是子进程产生的。如果成功函数返回0,否则返回-1并设置errno
相关文章推荐
- Linux安装MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar
- Linux中的中断处理
- Linux定时任务系统 Cron
- Linux c学习--从标准输入输出看流和缓冲区
- Linux下Git和GitHub使用方法总结
- linux: /usr/bin/ld: cannot find -lloc
- Linux学习笔记(十九、别名与快捷键)
- CentOS ls 颜色
- Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收
- KVM for linux 安装简要说明
- Linux征途:每天一个linux命令
- 僵死进程和孤儿进程以及精灵进程
- Linux添加/删除用户和用户组
- svn之——linux下清除svn的用户名和密码
- Linux命令nohup
- 在Linux命令行下查询当前所使用的shell版本与种类的方法
- Linux 虚拟化实践之KVM
- 客户端putty, xshell连接linux中vim的小键盘问题
- centos时区修改
- redhat6.5换centos源