linux高性能服务器编程 (七) --Linux服务器程序规范
第七章 LInux 服务器程序规范
1)linux服务器程序一般以后台进程形式运行。后台进程又称为守护进程,是没有控制终端的,所以不会受到外界的干扰。守护进程的父进程通常是init进程(PID为1的进程)。2)linux服务器程序有一套日志系统,大部分后台进程都会在/var/log目录下记录。3)linux服务器程序一般都会以某个专门的非root身份运行,分别拥有自己的运行账户。4)linux服务器程序通常是可配置的,通过配置文件来管理一堆命令。5)linux服务器进程通常情况会在启动的时候生成一个PID文件并存入/var/run目录中。6)linux服务器通常需要考虑系统资源和限制。以预测自身能承受多大负荷,比如进程可用文件描述符总数和内存总数等。
1、UID 、EUID、GID、EGID
linux系统中用户的信息对服务器程序的安全来说是比较重要的,很多服务器就必须用root身份启动,但是不能用root身份运行,但是也可以通过一些函数设置和获取用户的真实权限。真实用户ID(UID) 有效用户ID (EUID) 真实组ID (GID) 有效组ID (EGID); 这些函数的存在是方便资源访问。
一个进程拥有两个用户:UID、EUID。UID就是指进程的执行者是谁, EUID是进程执行时对文件的访问权限。LInux是多任务,多用户的操作系统,可以实现多用户终端登录,进行自己的操作。
在linux中添加用户 可以使用 useradd 工具 如果是修改一个现有用户账户的属性可以使用 usermod 命令。
1)UID 查看用户 UID 可以使用 id 命令,是用来展示一个实时活动用户以及用户组ID的命令工具
2) EUID 有效用户id 用于文件访问检查,euid决定了进程是否有访问某个文件的能力。
admin@admindeMacBook-Pro / id
uid=(admin) gid=(staff) groups=(staff),(everyone),(localaccounts),(_appserverusr),(admin),(_appserveradm),(_lpadmin),(_appstore),(_lpoperator),(_developer),(_analyticsusers),(com.apple.access_ftp),(com.apple.access_screensharing),(com.apple.access_ssh),(com.apple.sharepoint.group.)
admin@admindeMacBook-Pro / id admin
uid=(admin) gid=(staff) groups=(staff),(everyone),(localaccounts),(_appserverusr),(admin),(_appserveradm),(_lpadmin),(_appstore),(_lpoperator),(_developer),(_analyticsusers),(com.apple.access_ftp),(com.apple.access_screensharing),(com.apple.access_ssh),(com.apple.sharepoint.group.)
admin@admindeMacBook-Pro /
linux下的每个进程都隶属于一个进程组。进程除了pid信息外还有pgid,每个进程组都有一个首领进程,其pgid和pid相同,一个进程只能设置自己和其子进程的pgid,并且当子进程进行exec函数族调用后就不能在父进程中改变其pgid。而多个进程组可以形成一个会话,但是创建会话的进程不能是某个进程组的首领进程,否则将产生错误。对于其余进程创建会话,有如下效果:1)调用进程成为会话的首领,此时该进程是新会话的唯一成员。2)新建一个进程组,其pgid就是调用进程的pid,调用进程成为该组首领。3)调用进程将甩开终端。
通过执行ps命令可以查看进程和进程组会话之间的关系。
linux高性能服务器编程 (七) --Linux服务器程序规范的更多相关文章
- Linux之网络编程:时间服务器
基于TCP-服务器 1,创建一个socket套接字 int socket(int domain,int type,int protocol) domain:IP地址族,AF_INET(IPv4).AF ...
- Linux高性能server编程——信号及应用
信号 信号是由用户.系统或者进程发送给目标进程的信息.以通知目标进程某个状态的改变或系统异常. Linux信号可由例如以下条件产生: 对于前台进程.用户能够通过输入特殊的终端字符来给它发送信号. ...
- Linux高性能服务器编程:Linux服务器程序规范
Linux服务器程序一般以后台进程形式运行,后台进程又称守护进程.它没有控制终端,不会接收到用户输入.守护进程的父进程通常是init进程(PID为1). Linux服务器程序有一套日志系统 Linux ...
- linux高性能服务器编程 (五) --Linux网络编程基础api
第五章 Linux网络编程基础api 1.主机字节序和网络字节序 字节序是指整数在内存中保存的顺序.字节序分为大端字节序.小端字节序. 大端字节序:一个整数的高位字节数据存放在内存的低地址处.低位字节 ...
- 二、多线程及服务器编程总结------linux多线程服务端编程
- Linux高性能server编程——定时器
版权声明:本文为博主原创文章.未经博主允许不得转载. https://blog.csdn.net/walkerkalr/article/details/36869913 定时器 服务器程序通常管 ...
- Linux高性能server编程——I/O复用
IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...
- Linux高性能server编程——Linux网络基础API及应用
Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...
- Linux高性能server编程——多线程编程(下)
多线程编程 条件变量 假设说相互排斥锁是用于同步线程对共享数据的訪问的话.那么条件变量则是用于线程之间同步共享数据的值. 条件变量提供了一种线程间的通信机制:当某个共享数据达到某个值得时候,唤醒等待这 ...
随机推荐
- 从0开始编写dapper核心功能、压榨性能、自己动手丰衣足食
我偶然听说sqlsugar的性能比dapper强.对此我表示怀疑(由于我一直使用的dapper存在偏见吧),于是自己测试了sqlsugar.freesql.dapper发现他们的给我的结果是 sqls ...
- C#读写设置修改调整UVC摄像头画面-焦点
有时,我们需要在C#代码中对摄像头的焦点进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- APS.NET MVC + EF (03)---初始MVC
3.1 MVC简介 MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(C ...
- xshell连接本地linux虚拟机速度很慢的解决办法
今天发现用xshell连接centos太慢,网上查询后发现是因为ssh的服务端在连接时会自动检测dns环境是否一致导致的,修改为不检测即可. 修改文件位置:vi /etc/ssh/sshd_confi ...
- nlp学习杂记
什么是 token embedding? 输入一个word,在字典里查找得到它对应的下标就是token,然后用该数字下标去lookup表查找得到该词对应的词向量(词嵌入)就是embedding wor ...
- Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif
Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif 一丶__str__ 和 __repr__ ...
- centos7安装jenkins以及jenkins正常启动无法访问问题
1.安装jdk yum search java|grep jdk sudo yum install -y java-1.8.0-openjdk 2.下载jenkins wget http://pkg. ...
- vue组件5 组件和v-for指令
使用v-for遍历一个数组的时候,并且给定的数组变化时vue不会重复生成所有的元素,而是智能的找到需要更改的元素,并只改变这些元素 key属性可以告诉vue数组中的每个元素都应该与页面上的哪个元素相关 ...
- k8s的node节点无法调度的问题
1.现象,创建deployment时 2.查看污点 [fedora@k8s-cluster--ycmwlao4q5wz-master- ~]$ kubectl describe node k8s-cl ...
- ip黑名单-做过ssh扫描黑的ip
# # hosts.deny This file contains access rules which are used to # deny connections to network servi ...