zoukankan      html  css  js  c++  java
  • 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=501(admin) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),701(com.apple.sharepoint.group.1)
     admin@admindeMacBook-Pro � / � id admin
    uid=501(admin) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),701(com.apple.sharepoint.group.1)
     admin@admindeMacBook-Pro � /

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

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

     

  • 相关阅读:
    虚拟机安装RHEL8.0.0
    给KVM添加新的磁盘
    RedHat7.4安装在个人电脑(笔记本)中安装遇到的问题总结
    shell编程-ssh免交互批量分发公钥脚本
    Error:Connection activation failed: No suitable device found for this connection 问题最新解决方案
    Linux下系统防火墙的发展历程和怎样学好防火墙(iptalbes和firewalld)
    Linux bash命令行常用快捷键(Xshell和secure CRT以及gnome-terminal)
    编写mysql多实例启动脚本
    RHEL7配置端口转发和地址伪装
    java中的事务,四大特性,并发造成的问题,隔离级别
  • 原文地址:https://www.cnblogs.com/dump/p/11171704.html
Copyright © 2011-2022 走看看