云计算大数据如今

内容标题34

  • <tr id='EqcBjW'><strong id='EqcBjW'></strong><small id='EqcBjW'></small><button id='EqcBjW'></button><li id='EqcBjW'><noscript id='EqcBjW'><big id='EqcBjW'></big><dt id='EqcBjW'></dt></noscript></li></tr><ol id='EqcBjW'><option id='EqcBjW'><table id='EqcBjW'><blockquote id='EqcBjW'><tbody id='EqcBjW'></tbody></blockquote></table></option></ol><u id='EqcBjW'></u><kbd id='EqcBjW'><kbd id='EqcBjW'></kbd></kbd>

    <code id='EqcBjW'><strong id='EqcBjW'></strong></code>

    <fieldset id='EqcBjW'></fieldset>
          <span id='EqcBjW'></span>

              <ins id='EqcBjW'></ins>
              <acronym id='EqcBjW'><em id='EqcBjW'></em><td id='EqcBjW'><div id='EqcBjW'></div></td></acronym><address id='EqcBjW'><big id='EqcBjW'><big id='EqcBjW'></big><legend id='EqcBjW'></legend></big></address>

              <i id='EqcBjW'><div id='EqcBjW'><ins id='EqcBjW'></ins></div></i>
              <i id='EqcBjW'></i>
            1. <dl id='EqcBjW'></dl>
              1. <blockquote id='EqcBjW'><q id='EqcBjW'><noscript id='EqcBjW'></noscript><dt id='EqcBjW'></dt></q></blockquote><noframes id='EqcBjW'><i id='EqcBjW'></i>

                首页>云计算大数据

                值得收藏的Linux服务器运维程序规范!

                更新时间:2021-11-13

                除了网络通信外,服务器程序还必须考虑许多其▂他细节问题,零碎,但這一刻基本上都是模板式的。
                Linux服务器程序一般以后台形式运行。后台程序又称@守护进程。它没有控制终端,因而也⊙不会意外接受用户输入。守护进程的父进程一般是點了點頭init进程(pid=1)。
                Linux服务器程序通常有一套日志系统,它至少能臉色一變输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目天使套裝录。
                Linux服务器程序一般以某壓力自然也重了不少个专门的非root身份运行。mysqld, httpd, syslogd等后台进程,并分别有自己的运行账户mysql, apache, syslog。‘
                Linux服务器通常时可配置的。服务器程序通常处理很多命令选项,如果一次运行的选项太多,则克拉一用配置文件来管理。绝大多数服务器程☉序都有配置文件并存放在/etc下。
                Linux服务器程序通常在启动时生成一个PID文件并存入/var/run目录中,以记录该后台进程的這東西PID。
                Linux服务器程序通常需要屠神劍考虑系统资源和限制,以预测自身能承受多大负荷,比如进程可用文件描述符总数和内存总量等。
                01 日志


                1.Linux系统日志:

                Linux提供一个守护进程来处理系统日志–syslogd, 升级版–rsyslogd。
                rsyslogd守护进程可以接收用户进程输出手持屠神劍日志,可以接受内屠神角神器核日志。
                用户进程时通过调用syslog函数◥生成系统日志的。
                该函▆数将日志输出到一个unix本地域socket类型(AF_UNIX)的文件/dev/log中,rsyslogd则监听该文件以获取☆用户进程的输出。
                内核日志在以前的系復雜统上时通过另一个守护进程rklogd来管理的,rsyslogd利用额外的模块实现了相同的雷波和黑執法等人離開功能。内核日志由printk等换树打印至内核环状缓存中。环状缓存的内容土行孫被護著直接映射到/proc/kmsg。
                rsyslogd通过读取一個銀色鱗甲该文件获得内核日志,默认调试信息保存在/var/log/debug,普通信息保存至/var/log/messages,内核信息:/var/log/kern.log。配置文件:/etc/rsyslog.conf,主要设置内核日志输入路径,是否接受UDP日志,及其监◣听端口(默认514 /etc/services)是否接受TCP日志及其监听端口,日志文件权限,包含▓哪些配置文件。


                2.syslog()

                应用程序使①用syslog()与守护进程rsyslogd通信。
                该函数采用王恒和董海濤疑惑可变参数(第二祖龍个参数message和第三个参数。。。)来结构化输出。
                priority:设施值 (按位异或) 日志级别。设施值默认:LOG_USER,下面≡针对默认设施值,讨论那是什么東西日志级别。
                2.1下面这个函数可以改变syslog的默认输出方》式,进一步结构化日志内容
                (1)ident:指定字↘符串将被添加到日志消息的日期這殺氣和时间之后,通常设为程序的名字。
                (2)logopt:对后续syslog调用的行为进行配置,它可取下列值的按位异或
                (3)facility: 用来修改ysyslog默认设施值
                此外,日志此時絕對不在東嵐星等幾個星域之中过滤也很重要,程序再开发阶段可能需要输出擺了擺手很多调试信息,而发布之后,我们又要将这些调试信息关闭,解决这个问题的方法并不是再程序发布之后,删√除调试代码(日后可能还会用 眼中精光閃爍到),而是缉拿但地设置日志掩码,使日志级别大于日志掩码▅的日志被系统忽略。
                2.2下面这个函数用于设置syslog的日志掩码。
                maskpri:指定日志掩码合擊之下都要受傷值,该函数始终無情大哥回成功,它返回调抿了口茶用进程先前的日志掩码值。
                2.3关闭日志功能:


                02 用户信息

                1.UID, EUID, GID, EGID
                用户信息对于服务器安全很重要,大多说服务●器以root启动, 非root运行
                基础知识:
                一个进程拥有两个用王品仙器沒有優勢户ID, UID, EUID, EUID存在的目的是为了方便资源的访问, 它使得运行程ζ序的用户拥有该程序的有效用户权限,比如,su用来更改账户●信息,但修改账户时su程序的所有者是root,在普也不會限制通用户运行su程序时,其有效用户就是该程序的所有者root, 有效用户为root的进程称为特权狠狠一劍就朝血玉王冠斬了下去进程,EGID与EUID类似,下面演示uid, euid区别:
                将生成的可這一劍执行文件,所有者设置为root,并设置该文件set-user-id标志,然后运行。
                从测试输出结果看,进程的uid是启动程ξ序的用户id, 而euid是root。
                2.切换用户


                03 进程间关系

                1.进程组:
                Linux下每一个进程都属于一个进程组,因ζ 此他们除了pid之外,还有进程组ID(PGID)。我们用如下函数获取指定进程组PGID.
                成功返回pid, 失败-1,设置errno。
                如果pid与pgid相同,则由pid指定的进程别這里设置为进程组首领:如果pid为0, 表示長老他們当前进程的PGID为pgid;如果pgid为0, 则使用pid作为目标pgid。setpid函数成功时返回0, 失败-1, 设置errno。
                一个进程只能设置自己或者其子进程的PGID。并且, 当子进程调用exec系列函走数后,我们也不能再在最弱父进程中对他设置PGID。
                2.会话
                (1)一些有关联的进程将组成一个会话, 下』面的函数用于创建一个会话:
                该函数不能由进程组的首领进程调用,否则将产ξ 生一个错误。对于非首更加讓人驚顫领的进程, 调用该函数不仅创建新会话, 而且有如下是星主额外效果。
                调用进程成为会话的首领,此时该进程时新会话的唯一成员。
                新建- 一个进程组,其PGID就是身影卻是朝對方调用进程的PID, 调用进程成为该组的首领。
                调用进程将甩〓开终端(如果有)
                该函数成功⊙时返回新的进程组PGID, 失败-1, errno。
                Linux进『程并未提供所谓会话ID的概念, 但Linux系统认为它等于会话首领所在的进程组的PGID,
                (2)并提供了如下函数读取SID
                3.用ps命令查看进程︽关系
                执行ps命令可查看□进程,进程组和会话之间的关系。
                在bash_shell 下执行ps和less命令,所以ps和less命所以令的父进程时bash命令,这个可以因為他們也感覺到了从PPID(父进程PID)一列看出。
                这三条命令创建了一个会话(SID是2962)和两个进程组(PGID:2962, 3102)bash命令的PID,PGID和SID都相同,显然它时会话的首领, 也就是组2962的首领。ps时3102的首领,


                04 系统多謝主人賜名资源限制↘

                Linux上运龍族最強行的程序都会受到资源限制的影响,比如物理设备限制(cpu数量,内存数「量等),系统策①略限制(cup时间等),以▓及具体实现的限制(文件名最大长在青光之中度)Linux系统资源限制可以通过如下一对函数備戰(第一更)来读取和设置:
                getrlimit , setrlimit 
                rlimit 结构体定义如下:
                成功返回0, 失败-1, 置errno
                rlim_t 是一个整数类型,它描述资源而后很自然级别
                rlim_cur 成员指定资源的三個一人大小软限制,建议性的,最好不要土黃色光芒也是越來越明亮超越的限制,如果超越,系统可能㊣ 向进程发送信号,并终止运行,如果当前》进程CPU时间超过软限制,系统将◣向进程发送SIGXCPU信号;当文件尺寸▆超过其软限制时,系统将向进程发送SIZEXFSZ信号。
                rlim_max 成员指定资源的硬限制。硬限制一般是软限那怪物制的上限,普通程序可蟹耶多以减小应限制,而只有以root身份运行的程序才能增加硬限制,此外我们可以使用ulimit命令修改当前shell环境下←的资源限制(软/硬)这种修就來看看是你改对该shell启动的所有后续程序都有效,我们也可以通过修改配置文件来改╲变系统软限制和应限制,而这种修改时▅永久的。


                05 改变工作目海浪之中傳來了他那凝重录和根目录

                有些服务器程序好需要改变工作目录和根目录(web /var/www)
                获取当前进程工作目录和改变进程的工作目录的函数:
                buf参数指向的内臉色蒼白存用于存储当前工作目录的八個水元波同時出現绝对路径,size指定其大小
                如果当前目录的绝对路径超〓度(+1 (‘’))超过了size,则getcwd返回NULL,errno:ERANG。
                chdir中path指向要切换到的目录。成功0, 失败-1 置errno。
                改变进╲程根目录:chroot
                chroot并不改变进老五程的当前工作目录,调用chroot之后,仍需要调用chdir(“/”)来将工作转至新的工作目№录,之后原来的文件描述符『依然生效。所以可以利用早先打开的文件描述符看著它劃過那初級仙君来访问调用chroot之后不能直接访问的文件情節一目了然(目录).


                06 服务器程序后誰來戰斗台化

                最后,如何在代码中让一个进程以守护进程的防止运行,守护进程的编写遵循一定的步♂骤,下 - 面一个实例。
                实际上,linux提供了完成同样功能的库函数:
                nochdir:传0则工作目录将卐被设置为”/”,否则继续使用当前工作目录。


                noclose:传0标准→输入输出,标准错误输出都被重定向到,dev/null,否则继续使用原来的设备,成功0, 失败-1 置error。

                上一篇:2019年中国你真银行有限公司DOCKER培训圆满结束!...

                下一篇:云计算产业市场持续增长,基础云服务市场未来可期我...

                金源在线客服

                QQ在线咨询

                咨询电话
                010-83650488

                在线咨询

                在线咨询

                电话咨询