新闻动态

进程程序:运维人必收藏的最全Linux服务器程序规范

发布日期:2021-02-13 12:56 | 文章来源:YINGSOO

  【文章声明】本文收集整理于互联网,不确保内容真实性和质量度,仅供参考!若有服务器产品相关问题,请咨询[YINGSOO]在线客服,获取专业解答!

  【海外主机】柬埔寨云服务器价格 | 香港物理服务器价格 | 美国显卡服务器价格 | DDOS云防护

  【推荐文章】云主机能玩游戏吗?答案有两种 | 韩国云主机、vps、云服务器的区别!

进程程序

  除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上都是模板式的。

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。se[服务器主机购买]tpid函数成功时返回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系统资源限制可以通过如下一对函数来读取和设置:

  1. 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。

  本公司15年的idc运营经验,推出全球海外服务器租用托管、机柜租用、带宽租用、虚拟主机、云主机、cdn等业务,同时提供高防服务器安全服务,欢迎广大客户来电咨询!

  

  _普通应用相比_云平台应用有什么优势

  随着云计算的发展,云平台在之前发展的基础上,衍生出了云平台应[日本云服务]用。现在随着技术的不断发展,云平台应用越来越多,百度也相继推出了一些云应用。不难看出,在未来,应用的概念将被淡化,平台的功能将会被逐渐凸显出来。为[游戏云服务器]什么会出现云平台应用呢,因为传统的应用使用起来非常的麻烦,有的时候有些软件还不兼容,企业的员工只能把格式转化之后才能够继续再其它应用上面进行操作。所以,和传统应用相比,云平台应用有着更多的优势。1.以前的应用价格都比较昂贵,尤其是企业版的应用价格更是好几万。这让很多的中小企业根本没有办法支付购买应用所需要的费用。而且是一旦购买之后就没有办法退货,不管应用本身设计是多么的不合理,客户也没有任何的办法。而使用云平台应用,一般的付费方式都是按月或者是按年付费。用户不满意,到期之后就可以不再使用这个应用。而且云平台应用的价格都比较低廉,更适合中小型企业或者一些个人用户来使用。2.以前的企业要想使用一款应用的话,那必须一次性购买整套软件。有很多时候,这些被打包的软件中有很多功能是企业用不到的,可是不购买又不行,只能够购买。而每一个云平台应用则不是这样,它们的功能非常的简单,有很多应用只是为了帮助企业解决一个问题。比如说就是为了解决企业文件存储问题,这样的应用反而更受广大用户的欢迎。3.购买了传统的应用之后,总会出现各种漏洞,这个时候就需要专业的人员帮助修复。只是维护成本就高得吓人。而因为云平台应用一直是由软件的制造者运营的,所以不管是应用升级还是出现漏洞之后的修复。都不需要用户出一分钱。而且云平台应用不需要用户自己来维护。4.云平台应用要比传统的应用开发难度小,而且更新升级的速度也快。所以,这些应用能够满足应用不断迭代更新的要求,从而能够让企业用户在使用的时候更加的方便实用。5.传统的应用一旦在某一台电脑上面安装之后,那就只能够在这个电脑上面使用,不能够在其它地方使用。而云平台应用主要依靠的是账号管理,只要你拥有账号,你就可以在任何的电脑端使用自己已经购买的云平台应用,使用的便捷性大大的得到了提升。云平台应用的使用给企业带来了很多的便利,所以使得很多的企业现在越来越多的使用云平台应用。随着技术的发展,相信在以后云平台应用会发展的更好,更便利,为用户带来更多的利益。

  YINGSOO热线:400 630 3752

  热门文章:【低延迟服务器】【国内云主机评测该怎么做呢】【美国服务器不限内容】【双线服务器出租注意事项有哪些】【网游主机】【服务器出租价格】【国内虚拟主机的优缺点】【香港虚拟主机哪家好】【青岛服务器机房】【境内服务器】【香港服务器机柜】【香港稳定服务器】【防御攻击】【服务器知识】【租用香港服务器有哪些优势】【视频云服务器】【韩国服务器租用平台】【高仿服务器托管】【台湾主机机房】【个人服务器搭建违法】【香港bgp机房】【有试用的境外服务器吗】【YINGSOO成功为安智APP部署台湾云服务器】【网站建设是选服务器还是虚拟主机】【香港直连CN2服务器优缺点分析】【YINGSOO香港服务器怎么样】【国外代理服务器】【G口服务器租用】【免费云服务器永久使用

  YINGSOO韩国云服务器租用商3天免费试用,注册享特惠!

  韩国云服务器租用商控制面板自主管理,5分钟交付,KT高品质机房,平均延迟低至80ms,2019年韩国云服务器租用商销量再度破表,1200家企业共同选择,高达95%的续约率印证YINGSOO品质

  https://www.yingsoo.com/products/cloud-kr.html

  海外电影网站云服务器_美国_日本_韩国精选线路,实时开通

  海外电影网站云服务器,YINGSOO,专业海外云服务器提供商,提供亚洲,欧美等全球范围云服务器租用托管,1对1客服指导,7x24小时保障,全球精选线路免费试用

  https://www.yingsoo.com/

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部