第七章 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服务器程序规范的更多相关文章

  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. asp获取access数据库中的一条随机记录

    针对“用一条SQL得到数据库中的随机记录集”问题在网上已经有很多答案了: SQL Server 2000: SELECT TOP n * FROM tanblename ORDER BY NEWID( ...

  2. intel AVX指令集

    听说这 AVX 很牛,,支持Win7,大幅提高游戏浮点运算性能warning C4752: 发现 Intel(R) 高级矢量扩展:请考虑使用 /arch:AVX

  3. 虚拟化x86的三种途径

    虚拟化x86的三种途径 作者:缪天翔链接:https://www.zhihu.com/question/20145026/answer/34527331 x86上的全系统虚拟化有三种主要的途径: 二进 ...

  4. 使用JavaConfig配置SpringMVC

    目录结构 web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi ...

  5. k8s网络配置管理

    docker容器的四种网络类型 1.桥接           2.联盟    3.主机    4.无 docker跨节点的容器通信必须通过NAT机制  宿主机上的容器一般都是私网地址 它可以通过宿主机 ...

  6. CDA数据分析实务【第一章:营销决策分析概述】

    一.营销概述 营销是关于企业如何发现.创造和交付价值以满足一定目标市场的需求,同时获取利润的学科.营销学用来辨识未被满足的需求,定义,度量目标市场的规模和利润潜力,找到最合适企业进入的细分市场和适合该 ...

  7. PHP的垃圾回收机制之引用计数

    1,介绍 php的垃圾回收机制(GC)是在PHP5之后出现的,而在PHP5.3版本之前使用的都是“引用计数”的方式.实现引用计数的实质就是在每个内存对象中都有一个计数器,当内存对象被变量引用时,计数器 ...

  8. Odoo启动运行参数(script运行参数,不是运行配置文件)

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826315.html 一:启动选项用在哪里 如果你是用Pycharm进行odoo二次开发的话,可以通过 R ...

  9. Python pyc文件

    什么是pyc文件 pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的.pyc的内容,是跟pyt ...

  10. Centos 7.3 镜像制作

    1.在KVM环境上准备虚拟机磁盘 [root@localhost ~]# qemu-img create -f qcow2 -o size=50G /opt/CentOS---x86_64_50G.q ...