第七章 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决定了进程是否有访问某个文件的能力。 

  1. admin@admindeMacBook-Pro / id
  2. 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.)
  3. admin@admindeMacBook-Pro / id admin
  4. 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.)
  5. admin@admindeMacBook-Pro /

  linux下的每个进程都隶属于一个进程组。进程除了pid信息外还有pgid,每个进程组都有一个首领进程,其pgid和pid相同,一个进程只能设置自己和其子进程的pgid,并且当子进程进行exec函数族调用后就不能在父进程中改变其pgid。而多个进程组可以形成一个会话,但是创建会话的进程不能是某个进程组的首领进程,否则将产生错误。对于其余进程创建会话,有如下效果:1)调用进程成为会话的首领,此时该进程是新会话的唯一成员。2)新建一个进程组,其pgid就是调用进程的pid,调用进程成为该组首领。3)调用进程将甩开终端。 

  通过执行ps命令可以查看进程和进程组会话之间的关系。

 

linux高性能服务器编程 (七) --Linux服务器程序规范的更多相关文章

  1. Linux之网络编程:时间服务器

    基于TCP-服务器 1,创建一个socket套接字 int socket(int domain,int type,int protocol) domain:IP地址族,AF_INET(IPv4).AF ...

  2. Linux高性能server编程——信号及应用

     信号 信号是由用户.系统或者进程发送给目标进程的信息.以通知目标进程某个状态的改变或系统异常. Linux信号可由例如以下条件产生: 对于前台进程.用户能够通过输入特殊的终端字符来给它发送信号. ...

  3. Linux高性能服务器编程:Linux服务器程序规范

    Linux服务器程序一般以后台进程形式运行,后台进程又称守护进程.它没有控制终端,不会接收到用户输入.守护进程的父进程通常是init进程(PID为1). Linux服务器程序有一套日志系统 Linux ...

  4. linux高性能服务器编程 (五) --Linux网络编程基础api

    第五章 Linux网络编程基础api 1.主机字节序和网络字节序 字节序是指整数在内存中保存的顺序.字节序分为大端字节序.小端字节序. 大端字节序:一个整数的高位字节数据存放在内存的低地址处.低位字节 ...

  5. 二、多线程及服务器编程总结------linux多线程服务端编程

  6. Linux高性能server编程——定时器

    版权声明:本文为博主原创文章.未经博主允许不得转载. https://blog.csdn.net/walkerkalr/article/details/36869913  定时器 服务器程序通常管 ...

  7. Linux高性能server编程——I/O复用

     IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...

  8. Linux高性能server编程——Linux网络基础API及应用

     Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...

  9. Linux高性能server编程——多线程编程(下)

    多线程编程 条件变量 假设说相互排斥锁是用于同步线程对共享数据的訪问的话.那么条件变量则是用于线程之间同步共享数据的值. 条件变量提供了一种线程间的通信机制:当某个共享数据达到某个值得时候,唤醒等待这 ...

随机推荐

  1. python基础06--文件操作

    1.1 文件操作 1.只读(r,rb)     rb以bytes方式读文件 只写(w,wb) 追加(a,ab) r+ 读写 w+ 写读 a+  追加写读 以什么编码方式储存的文件,就用什么编码方式打开 ...

  2. webpack 入门和常用插件的使用

    常用配置参数 module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js' }, ...

  3. expor和import的用法

    1.Export 模块是独立的文件,该文件内部的所有的变量外部都无法获取.如果希望获取某个变量,必须通过export输出 // profile.js export var firstName = 'M ...

  4. 英语orientaljasper鸡血石orientaljasper单词

    鸡血石(orientaljasper),是辰砂条带的地开石,因鲜红色似鸡血的辰砂(朱砂)而得名.鸡血石含有辰砂(朱砂).石英.玉髓35%-45%.磁铁矿.赤铁矿6%-12%.辰砂约5%-8%. 鸡血石 ...

  5. php bootstrap-datetimepicker

    开发语言:php 框架:thinkphp 3.2 问题:搜索条件 开始时间--结束时间 解决工具: bootstrap-datetimepicker 插件 时间插件组合用法 1.公用部分 css: b ...

  6. Java的常见术语(PO/POJO/VO/BO/DAO/DTO)

    PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...

  7. jperf windows

    jperf windows版是款简单实用的网络性能测试的工具:它也是款图形界面的iperf程序,可以这进行使用JPerf程序的时候,快速的进行简化您的命令行参数,而且这进行测试结束之后,还是以图形化的 ...

  8. Hexo 文章图片添加水印,不用云处理

    由于网上找到的都是借用第三方云处理添加水印,但是我不太想用,所以自己开发了一个插件 Hexo 图片添加水印Github地址 目前插件可以直接在 hexo 官网上搜索到 下面内容都是在 Github 上 ...

  9. 详解Eureka 缓存机制

    原文:https://www.cnblogs.com/yixinjishu/p/10871243.html 引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Clo ...

  10. python应用-跑马灯

    import os import time def main(): str1='欢迎来到前锋学习Python' while True: os.system('cls') print(str1) tim ...