7-liunx服务器规范

目录

  • 概况
    • liunx日志
      • liunx系统日志
      • syslog函数
        • openlog 可以改变syslog默认输出方式 ,进一步结构化
    • 用户信息
    • 进程间的关系
    • 会话
        • ps命令查看进程关系
    • 系统资源限制
    • 改变工作目录和根目录
    • 服务器程序后台话

概况

liunx服务器上有很多细节需要注意 ,这些细节很重要而且是 模版状,称为服务器规范
比如

  • 服务器程序一般在后台运行,又称为守护进程,没有控制终端,因此,不会意外收到用户输入,它们的父进程一般是init进程 PID为1的进程
  • liunx服务器程序一般以非root权限运行,而且有自己的运行账户,比如mysql,apache 和syslog等
  • liunx服务器程序是可配置的,通常有很多命令行选项,可以针对不同的情况采取不同的措施,这些程序一般有自己的配置文件,配置文件一般放在/etc目录下面
  • liunx服务器启动的时候会生成一个PID文件存入 /var/run目录下面 以记录后台进程的PID 比如syslog的pid文件是/var/run/syslogd.pid
  • 服务器程序需要考虑系统资源和限制 ,预测自身能承受多大符合,比如进程可用文件描述符总数和内存总量.

liunx日志

liunx系统日志

服务器的调试和维护都需要一个专业的日志系统,liunx提供一个守护进程来处理日志 —syslogd
现在liunx用到的都是他的升级版 — rsyslogd


rsyslogd 既能接受用户日志 也能接受内核日志 用户调用syslog来将信息输出到本地UNIX域中的socket类型的文件/dev/log rsyslog则监听该文件以获取 用户进程的输出。
在老系统上内核日志是通过守护进程rklogd来管理的。 rsyslogd利用额外的模块来实现了相同的功能。内核日志由printk等函数打印到内核的环状缓存中 环状缓存中的内容直接映射到/proc/kmsg文件中. rsyslogd则通过读取该文件获得内核日志。


rsyslogd守护进程收到用户进程或者内核输入的日志后 会输出到指定的日志文件中,这些都是可以配置的

  • 默认情况下调试信息回报错在/var/log/debug文件,普通信息报错在/var/log/messages文件 内核消息保存在/var/log/kern.log文件
  • 日志系统如何分发可以在/etc/rsyslog.conf中。主要可以设置的项包括,内核日志输出路径,是否接受UDP日志及监听端口(默认514 在、/ect/services文件),是否接受TCP日志及监听端口,日志文件的权限,包含那些子配置文件(/etc/rsyslog.d/*.conf) 这些配置文件指定各类日志的目标存储文件

一图概括
在这里插入图片描述

syslog函数

应用程序采用syslog函数和rsyslogd守护进程通信,定义如下
在这里插入图片描述

第一个参数是日志级别
第二个可变参数 用于输出具体日志内容
日志级别如下

在这里插入图片描述

openlog 可以改变syslog默认输出方式 ,进一步结构化

在这里插入图片描述

  • ident 将被添加到日志消息的日期和时间之后 常被设置为程序的名称
  • logopt参数对后续syslog调用的行为进行配置 下面为可取值
    在这里插入图片描述
    -facility参数可用来修改syslog函数中的默认设施值

还可以通过设置日志掩码 来保证发布的程序不会出现大量的日志日志级别大于日志掩码的日志信息将会被忽略
在这里插入图片描述
maskpri 指定日志掩码值 返回该进程之前的日志掩码值
调用完后日志 需要通过下面函数关闭日志
在这里插入图片描述

用户信息

大部分服务器以root身份启动,但不能以root的身份运行。这关乎用户信息的安全性。
下面函数可以获取和设置当前进程的真实用户,有效用户,真实组,有效组。

在这里插入图片描述
一个进程有两个用户ID:UID 和EUID。
EUID存在的目的是为了方便资源访问:让运行程序的用户拥有有效用户的权限
任何用户都能用su程序来修改自己的账号信息 ,因为su程序的有效用户是root,可以访问到/etc/passwd文件 su程序被设置成了set-user-id.
任何运行su程序的普通用户都能访问/etc/passwd文件。有效用户为root的进程被称为特权进程

进程间的关系

liunx下面的每一个进程 有自己的pid 也有进程组ID(PGID)
通过下面函数获取指定进程的PGID
在这里插入图片描述
成功返回进程所属PGID,失败则返回-1 并设置errno
设置PGID
在这里插入图片描述
该函数将PID为pid的进程PGID设置为pgid,如果pid和pgid相同,则把pid对应的进程设置为进程组首领。如果pid为0 ,则表示当前进程的PGID 为pgid 如果pgid为0 ,则使用pid作为目标PGID。setgid函数成功时返回0,失败则返回-1并设置erron
注意:一个进程只能设置自己或者其子进程的PGID ,并且,当子进程调用exec相关函数后,
我们不能再在父进程中它设置PGID

会话

一些有关联的进程组将会形成一个会话,下面函数用于创建一个会话
在这里插入图片描述
该函数如果由进程组的首领调用的话 会产生一个错误,对于非组首领进程,调用该函数不仅会创建新会话,而且有以下效果

  • 调用进程会成为会话的首领 ,此时该进程是新会话的唯一成员.
  • 新建的一个进程组 ,其PGID就是调用进程的PID 调用进程称为了该组的首领
  • 调用进程将甩开终端
    该函数调用成功将返回新的进程组PGID 失败返回-1 并设置errno

liunx进程并未提供所谓的会话ID的概念,但liunx系统认为它等于会话首领所在的进程组PGID
并提供了如下函数来读取SID
在这里插入图片描述

ps命令查看进程关系

在这里插入图片描述

系统资源限制

待补充

改变工作目录和根目录

待补充

服务器程序后台话

待补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务网格Service Mesh和Istio

文章目录 服务网格(Service Mesh)市场上三种服务网格解决方案服务网格的特征流量管理安全性可观察性 Istio简介Istio提供了什么功能服务 ?Istio 核心特性流量管理安全可观察性 平台支持 服务网格(Service Mesh) 服务网…

Eureka注册中心(黑马学习笔记)

Eureka注册中心 假如我们的服务提供者user-service部署了多个实例,如图: 大家思考几个问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口? 有多个user-service实例地址&#xff0c…

TreeData 数据查找

TreeData 数据查找 最近做需求的时候遇到了这样的一个需求,Tree组件数据支持查找,而且TreeData的数据层级是无限级的 开始想的事借助UI组件库(Ant-design-vue)中的Tree组件的相关方法直接实现,看了下api 发现没法实现,…

超级实用的python代码片段汇总和详细解析(16个)

目录 1. 生成随机文本 2. 计算文本文件中的字数 3. 替换文件文件中的字串 4. 多文件名的批量替换 5. 从网站提取数据 6. 批量下载图片 7.批量删除空文件夹 8.Excel表格读写 9.合并Excel表格工作簿 10.数据库SQL查询 11. 系统进程查杀 12.图像尺寸调整和裁剪 13.图…

redis实现消息队列redis发布订阅redis监听key

文章目录 Redis消息队列实现异步秒杀1. jvm阻塞队列问题2. 什么是消息队列3. Redis实现消息队列1. 基于List结构模拟消息队列操作优缺点 2. 基于PubSub发布订阅的消息队列操作优缺点spring 结合redis的pubsub使用示例1. 引入依赖2. 配置文件3. RedisConfig4. CustomizeMessageL…

大语言模型的开山之作—探秘GPT系列:GPT-1-GPT2-GPT-3的进化之路

模型模型参数创新点评价GPT1预训练微调, 创新点在于Task-specific input transformations。GPT215亿参数预训练PromptPredict, 创新点在于Zero-shotZero-shot新颖度拉满,但模型性能拉胯GPT31750亿参数预训练PromptPredict, 创新点…

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化)

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化) 一、算法原理二、代码三、结果1.多窗口可视化结果2.单窗口多点云可视化 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多建立2个窗…

ESP8266智能家居(3)——单片机数据发送到mqtt服务器

1.主要思想 前期已学习如何用ESP8266连接WIFI,并发送数据到服务器。现在只需要在单片机与nodeMCU之间建立起串口通信,这样单片机就可以将传感器测到的数据:光照,温度,湿度等等传递给8266了,然后8266再对数据…

【AI应用】SoraWebui——在线文生视频工具

SoraWebui 是一个开源项目,允许用户使用 OpenAI 的 Sora 模型使用文本在线生成视频,从而简化视频创建,并具有轻松的一键网站部署功能 在 Vercel 上部署 1. 克隆项目 git clone gitgithub.com:SoraWebui/SoraWebui.git 2. 安装依赖 cd Sor…

【Java EE初阶二十】http的简单理解(一)

1. 初识http HTTP 最新的版本应该是 HTTP/3.0,目前大规模使用的版本 HTTP/1.1; 下面来简单说明一下使用 HTTP 协议的场景: 1、浏览器打开网站 (基本上) 2、手机 APP 访问对应的服务器 (大概率) 前面的 TCP与UDP 和http不同,HTTP 的报文格式&a…

React基础-webpack+creact-react-app创建项目

学习视频:学习视频 2节:webpack工程化创建项目 2.1.webpack工程化工具:vite/rollup/turbopak; 实现组件的合并、压缩、打包等; 代码编译、兼容、校验等; 2.2.React工程化/组件开发 我们可以基于webpack自己去搭建…

sql-labs25-28a

一、环境 网上都有不过多阐述 二、sql-labs第25关 它说你的OR和and属于它,那就是过滤了OR和and 注入尝试 不用or和and进行爆破注入,很明显是有注入点的 ?id-1 union select 1,2,3-- 查看数据库 ok,此道题算是解了但是如果我们用了and了呢 ?id-1 and updatex…

浅谈集群的分类

本文主要介绍集群部署相关的知识,介绍集群部署的基础,集群的分类、集群的负载均衡技术,集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、内存、处理器等多方面…

STM32-串口通信(串口的接收和发送)

文章目录 STM32的串口通信一、STM32里的串口通信二、串口的发送和接收串口发送串口接收 三、串口在STM32中的配置四、串口接收的两种实现方式1. 需要更改的地方2. 查询RXNE标志位3. 使用中断 总结 STM32的串口通信 本文在于记录自己的学习过程中遇到的问题和总结,各…

大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…

Liunx使用nginx和http搭建yum-server仓库

文章目录 1. yum-server的搭建方式2. nginx搭建yum-server仓库2.1. 安装配置nginx2.2 配置yum-server的rpm2.3. 同步yum源相关包2.3.1 rsync同步源3.3.1 reposync同步源 2.4. 配置客户端访问yum配置2.5. 验证测试 3. http服务搭建yum-server仓库3.1. 安装配置http3.2 配置yum-s…

Firewalld防火墙

Firewalld概述 Firewalld firewalld防火墙是centos7系统默认防火墙的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具至此IPv4、IPv6…

studio one 6正版多少钱?怎么购买studio one 更便宜,有优惠券哦

Presonus Studio One Studio One是由美国PreSonus公司开发的数字音频工作站,作为DAW届的新人,功能强大且全面,虽然它不像其他DAW那样拥有历史和声誉,但它是一个可爱的软件,包含许多其它DAW所不具备的实用功能&#xff…

web基础及http协议 (二)----------Apache相关配置与优化

一、httpd 安装组成 http 服务基于 C/S 结构 1 .常见http 服务器程序 httpd apache,存在C10K(10K connections)问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器&#xf…

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时,你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结: 结论 1、如果你专注于“数据科学”,选择SpyDer没错。 内容 Visual Studio Code (VS Code)…