Linux守护进程简介

合集下载

syslog之一:Linuxsyslog日志系统详解

syslog之一:Linuxsyslog日志系统详解

syslog之⼀:Linuxsyslog⽇志系统详解# ⼀、syslog简介syslog是⼀种⼯业标准的协议,可⽤来记录设备的⽇志。

在UNIX系统,路由器、交换机等⽹络设备中,系统⽇志(System Log)记录系统中任何时间发⽣的⼤⼩事件。

管理者可以通过查看系统记录,随时掌握系统状况。

UNIX的系统⽇志是通过syslogd这个进程记录系统有关事件记录,也可以记录应⽤程序运作事件。

通过适当的配置,我们还可以实现运⾏syslog 协议的机器间通信,通过分析这些⽹络⾏为⽇志,藉以追踪掌握与设备和⽹络有关的状况。

功能:记录⾄系统记录。

# ⼆、syslog服务与配置2.1、安装syslog软件包软件包名称为:rsyslog-5.8.10-10.el6_6.x86_64我⽤的是centos系统,配置的有第三⽅的yum源,我直接yum install直接装就OK了装完后⽤ rpm -qa | grep syslog下看是否已安装2.2、syslog⽇志系统可以根据程序详细信息的不同定义不同的⽇志级别2.3、Linux上的⽇志系统分为:syslog和syslog-ng(syslog⽇志系统的升级版)2.4、syslog服务:syslog服务进程分两个,分别是:syslogd(系统,⾮内核产⽣的⽇志)和klogd(专门记录内核产⽣的⽇志)kernel-->物理终端(/dev/console)-->/var/log/dmesg 其中/var/log/dmesg⽂件可以使⽤dmesg命令和cat查看⽂件内容⽇志滚动(⽇志切割):所谓的滚动是指历史信息所保存的⽇志,如;messages⽂件⽇志会越来越⼤等到了某⼀段时间,会把messages⽂件重新命名为messages.1,系统并重新创建messages⽂件,所以叫做⽇志滚动/sbin/init/var/log/messages:系统标准错误⽇志信息;⾮内核产⽣的引导信息,各⼦系统产⽣的信息/vat/log/maillog:邮件系统产⽣的⽇志信息/vat/log/secure:安全相关log系统⾃带的⽇志切割程序logrotatelogrotate脚本配置⽂件[root@localhost cron.daily]# pwd/etc/cron.daily[root@localhost cron.daily]# vim logrotate滚动⽇志信息配置⽂件[root@localhost cron.daily]# pwd/etc/cron.daily[root@localhost cron.daily]# vim /etc/logrotate.conf# see "man logrotate"for details# rotate log files weeklyweekly #每周滚动⼀次# keep 4 weeks worth of backlogsrotate 4 #只保留4个切割版本⽂件,超过后清除# create new (empty) log files after rotating old onescreate #滚动完之后创建⼀个空的新的⽂件# use date as a suffix of the rotated filedateext# uncomment this if you want your log files compressed#compress# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d #包括/etc/logrotate.d 下的⽂件,⼿动添加可直接添加到此⽬录# no packages own wtmp and btmp -- we'll rotate them here/var/log/wtmp{monthly #按⽉,⾃⼰定义create 0664 root utmp #创建⽂件并0664权限minsize 1M #最新1Mrotate 1 #保留⼏个版本}/var/log/btmp{missingokmonthlycreate 0600 root utmprotate 1}# system-specific logs may be also be configured here.[root@localhost cron.daily]#syslog配置⽂件/etc/rsyslog.conf注:centos 6 的配置⽂件是/etc/rsyslog.conf,centos5的配置⽂件是/etc/syslog.conf2.5、配置⽂件定义格式为facility.priority actionfacility是指哪个facility来源产⽣的⽇志; priority是指拿个级别的⽇志;action是指产⽣⽇志怎么办是保存在⽂件中还是其他。

创建守护进程实验报告

创建守护进程实验报告

一、实验目的1. 理解守护进程的概念和作用。

2. 掌握创建守护进程的基本方法和步骤。

3. 学会使用守护进程实现后台服务的运行。

二、实验环境1. 操作系统:Linux2. 编程语言:C语言3. 开发环境:gcc编译器三、实验原理守护进程(Daemon)是一种在后台运行的服务程序,它不受用户登录和注销的影响,持续为系统提供各种服务。

守护进程通常具有以下特点:1. 无需用户干预,自动运行。

2. 在后台运行,不占用终端。

3. 不受用户登录和注销的影响。

创建守护进程的基本步骤如下:1. 创建一个普通进程。

2. 将该进程转换为守护进程。

3. 释放与终端的关联,使其成为独立进程。

四、实验内容1. 编写一个守护进程程序,实现简单的后台服务功能。

2. 使守护进程在后台持续运行,不受用户登录和注销的影响。

五、实验步骤1. 编写源代码```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <signal.h>#define DAEMON_NAME "daemon"int main() {pid_t pid;int status;// 创建子进程pid = fork();if (pid < 0) {perror("fork");exit(1);}// 子进程成为守护进程if (pid > 0) {// 父进程退出exit(0);}// 将子进程转换为守护进程umask(0); // 设置文件权限掩码setsid(); // 创建新的会话,使子进程成为守护进程// 将子进程的工作目录切换到根目录chdir("/");// 关闭信号处理函数signal(SIGCHLD, SIG_IGN);// 创建守护进程名if (daemon(0, 0) < 0) {perror("daemon");exit(1);}// 守护进程主循环while (1) {printf("守护进程 %s 运行中...\n", DAEMON_NAME); sleep(10); // 等待10秒}return 0;}```2. 编译源代码```bashgcc -o daemon daemon.c```3. 运行守护进程```bash./daemon &```4. 查看守护进程状态```bashps -ef | grep daemon```六、实验结果与分析1. 编译并运行守护进程程序后,可以看到守护进程在后台持续运行,不受用户登录和注销的影响。

操作系统必备基础知识

操作系统必备基础知识

操作系统必备基础知识今天给大家推荐两份大佬们总结的PDF,一份是计算机基础知识,一份是操作系统,反正帅地看完之后,和面试官聊天,都有点飘了,废话不多说,下面就让小编带你去看看哪些操作系统必备基础知识,希望能帮助到大家!操作系统基础知识操作系统是计算机体系中必不可少的核心系统软件,其他软件(如编辑程序、汇编程序、编译程序、数据库管理系统等系统软件,以及大量应用软件)是建立在操作系统的基础上,并在操作系统的统一管理和支持下运行。

操作系统是用户与计算机之间的桥梁,用户可以通过操作系统提供的功能访问计算机系统中的软硬件资源。

操作系统的作用是通过资源管理提高计算机系统的效率,改善人机界面,为用户提供有好的工作环境。

有效地组织和管理系统中的各种软硬件资源,合理的组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

简单的说,操作系统就是运行在计算机硬件和软件(其他系统软件和应用软件)之间的一个系统软件,它的主要作用就是让计算机能够运行的很好的同时让你觉得也不错。

操作系统分为这么几种:批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微机操作系统(这个我们就比较常见了,比如Linux、Windows、Unix、手机上的基于Unix的安卓系统等等)。

操作系统的功能可分为5大部分:处理机(CPU)管理、文件管理、存储管理、设备管理和作业管理。

下面说说处理机管理中的一些基础知识。

三态模型五态模型在多道程序环境的系统中,存在多个可以一起进行(并发执行)的进程,因此必然会存在进程之间的通信问题。

进程间的通信主要有同步、互斥、调度、死锁、信号量机制等问题进程间的同步多个进程都是独立进行的,有的时候需要在某些地方协调一下,比如进程A在生产一个原件,进程B要加工这个原件,这时候就需要进程B等待进程A完成后才能开始进行,这就是进程之间的同步。

进程间的互斥这就是指两个进程都想用同一个资源,但是这个资源同时只能被一个进程使用。

Linux服务器操作系统简介及版本介绍

Linux服务器操作系统简介及版本介绍

Linux服务器操作系统简介及版本介绍Linux操作系统在服务器方面的应用越来越好。

下面由店铺为大家整理了Linux服务器操作系统的简介及版本介绍,希望对大家有帮助!Linux服务器操作系统简介及版本介绍一、Linux服务器操作系统简介Linux服务器操作系统和一般的Linux发行版有什么区别?考虑服务器硬件。

服务器本质上是具有专门规格的计算机。

例如,服务器硬件确保最大的正常运行时间,效率和安全性。

此外,服务器平衡计算能力和功耗。

类似地,Linux服务器操作系统优先考虑安全性和资源消耗。

Linux服务器操作系统向客户端设备提供内容。

因此,服务器操作系统提供了用于简单服务器创建的工具。

由于服务器通常以命令行方式进行配置和运行,因此Linux服务器操作系统的图形用户界面(GUI)不重要。

根据IDC,硬件销售数据表明,28%的服务器是基于Linux的。

虽然有专用的Linux服务器操作系统,还可以选择滚动安装版本。

选择的关键是操作系统应该能提供长期服务(LTS)迭代并支持安装所需的软件。

LTS的发行版提供了稳定性和更长的支撑周期。

当选择Linux服务器操作系统时,还要考虑使用用途。

比如将Linux计算机用作媒体服务器与设置游戏服务器是不同的。

二、Linux服务器操作系统版本介绍1. Ubuntu ServerUbuntu可以说是最知名的Linux操作系统。

而且社区有大量的Ubuntu衍生产品,它是一个稳定的发行版。

Ubuntu及其变体提供了优秀的用户体验。

Ubuntu Server有两个版本:LTS和滚动版本。

LTS 的Ubuntu Server发行版拥有五年的支持周期。

虽然非LTS的Ubuntu Server发行版支持周期不是五年,但也提供了九个月的安全和维护更新。

虽然Ubuntu和Ubuntu Server非常相似,但服务器提供了不同的组件。

值得注意的是,Ubuntu Server提供了OpenStack Mitaka、Nginx和LXD。

linux答案

linux答案

选择(1)Linux 的根分区系统类型是( C )。

A. FATl6B. FAT32C. Ext3D. NTFS(2)NFS 工作站要 mount 远程 NFS 服务器上的一个目录的时候,以下哪一项是服务器端必需的?( D )A. portmap 必须启动B. NFS 服务必须启动C. 共享目录必须加在/etc/exports 文件里D. 以上全部都需要(3)查看NFS 服务器192.168.12.1 中的共享目录的命令是:( C )A. show –e 192.168.12.1B. show //192.168.12.1C. showmount –e 192.168.12.1D. showmount –l 192.168.12.1(4)在你公司有10 台Linux servers。

你想用NFS 在Linux servers 之间共享文件。

应该修改的文件是:( A )A. /etc/exportsB. /etc/crontabC. /etc/named.confD. /etc/smb.conf(5)装载NFS 服务器192.168.12.1 的共享目录/tmp 到本地目录/mnt/shere 的命令是:( C )A. mount 192.168.12.1/tmp /mnt/shereB. mount –t nfs 192.168.12.1/tmp /mnt/shereC. mount –t nfs 192.168.12.1:/tmp /mnt/shereD. mount –t nfs //192.168.12.1/tmp /mnt/shere(6)下面不是Linux桌面的有( D )。

P31A.KDE B.GNOME C.XFCE D.Bash(7)用于存放系统配置文件的目录是( A )。

A. /etcB. /homeC. /varD. /root(8) linux下重命名文件可用如下哪个命令?( C )A.renB.lsC.mvD.copy(9) Linux 最早是由计算机爱好者( B )开发的。

syslog-系统日志应用

syslog-系统日志应用

syslog 系统日志应用1) 概述syslog是Linux系统默认的日志守护进程。

默认的syslog配置文件是/etc/syslog.conf文件。

程序,守护进程和内核提供了访问系统的日志信息。

因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。

几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd 监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。

意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。

通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。

/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。

2) etc/syslog.conf/etc/syslog.conf 文件使用下面的格式:facility.level actionfacility.level为选择条件本身分为两个字段,之间用一个小数点(.)分隔。

action和facility.level之间使用TAB隔开。

前一字段是一项服务,后一字段是一个优先级。

选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。

在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。

action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。

要素分析:facility 指定 syslog 功能,主要包括以下这些:kern 内核信息,首先通过 klogd 传递;user 用户进程;mail 邮件;daemon 后台进程;authpriv 授权信息;syslog 系统日志;lpr 打印信息;news 新闻组信息;uucp 由uucp生成的信息cron 计划和任务信息。

《网络服务器搭建、配置与管理-Linux(第3版)》习题

《网络服务器搭建、配置与管理-Linux版(第3版)》1.11 练习题一、填空题1.GNU的含义是。

2.Linux一般有3个主要部分:、、。

3.目前被称为纯种的UNIX指的就是以及这两套操作系统。

4.Linux是基于的软件模式进行发布的,它是GNU项目制定的通用公共许可证,英文是。

5.史托曼成立了自由软件基金会,它的英文是。

6.POSIX是的缩写,重点在规范核心与应用程序之间的接口,这是由美国电气与电子工程师学会(IEEE)所发布的一项标准。

7.当前的Linux常见的应用可分为与两个方面。

8.Linux的版本分为和两种。

9.安装Linux最少需要两个分区,分别是。

10.Linux默认的系统管理员账号是。

二、选择题1.Linux最早是由计算机爱好者()开发的。

A.Richard Petersen B.Linus TorvaldsC.Rob Pick D.Linux Sarwar2.下列中()是自由软件。

A.Windows XP B.UNIX C.Linux D.Windows 2008 3.下列中()不是Linux的特点。

A.多任务B.单用户C.设备独立性D.开放性4.Linux的内核版本2.3.20是()的版本。

A.不稳定B.稳定的C.第三次修订D.第二次修订5.Linux安装过程中的硬盘分区工具是()。

A.PQmagic B.FDISK C.FIPS D.Disk Druid 6.Linux的根分区系统类型可以设置成()。

A.FATl6 B.FAT32 C.ext4 D.NTFS三、简答题1.简述Linux的体系结构。

2.使用虚拟机安装Linux系统时,为什么要先选择稍后安装操作系统,而不是去选择RHEL 7系统镜像光盘?3.简述RPM与Yum软件仓库的作用。

4.安装Red Hat Linux系统的基本磁盘分区有哪些?5.Red Hat Linux系统支持的文件类型有哪些?6.丢失root口令如何解决?7.RHEL 7系统采用了systemd作为初始化进程,那么如何查看某个服务的运行状态?2.6 练习题一、填空题1.文件主要用于设置基本的网络配置,包括主机名称、网关等。

《Linux网络操作系统》课件——项目十二--配置与管理DNS服务器


4
一个DNS域可以包括主机和其他域(子域),每个机构都拥有名称空间的某一部分的 授权,负责该部分名称空间的管理和划分,并用它来命名DNS域和计算机。例如,163为 com域的子域,其表示方法为163,而为163域中的Web主机,可以使用.163表示。 注意:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a~z、0 ~9、A~Z和减号(-)。点号(.)只允许在域名标志之间(例如“163”)或者FQDN的结 尾使用。域名不区分大小。
[root@RHEL7-1 ~]# rpm -qa|grep bind
rpcbind-0.2.0-42.el7.x86_64
bind-libs-lite-9.9.4-50.el7.x86_64
bind-license-9.9.4-50.el7.noarch
bind-9.9.4-50.el7.x86_64
12
12.1.4 子任务4 掌握域名解析过程 1.DNS域名解析的工作原理
DNS域名解析的工作过程如图12-2所示。 假设客户机使用电信ADSL(Asymmetrical Digital Subscriber Line,非对称数字用户线路) 接入Internet,电信为其分配的DNS服务器地址为210.111.110.10,域名解析过程如下 (见图12-2)。
1.域和域名
图12-1 Internet域名空间的结构
3
DNS树的每个节点代表一个域,通过这些节点 ,对整个域名空间进行划分,成为一个层次结构。 域名空间的每个域的名字通过域名进行表示。域名 通常由一个完全正式域名(Fully Qualified Domain Name,FQDN)标识。FQDN能准确表示出其相对 于DNS域树根的位置,也就是节点到DNS树根的完 整表述方式,从节点到树根采用反向书写,并将每 个节点用“.”分隔。

LinuxNFS服务器的安装与配置方法(图文详解)

LinuxNFS服务器的安装与配置⽅法(图⽂详解)⼀、NFS服务简介 NFS 是Network File System的缩写,即⽹络⽂件系统。

⼀种使⽤于分散式⽂件系统的协定,由Sun公司开发,于1984年向外公布。

功能是通过⽹络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应⽤程序在客户端通过⽹络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘⽂件共享的⼀种⽅法。

NFS 的基本原则是“容许不同的客户端及服务端通过⼀组RPC分享相同的⽂件系统”,它是独⽴于操作系统,容许不同硬件及操作系统的系统共同进⾏⽂件的分享。

NFS在⽂件传送或信息传送过程中依赖于RPC协议。

RPC,远程过程调⽤ (Remote Procedure Call) 是能使客户端执⾏其他系统中程序的⼀种机制。

NFS本⾝是没有提供信息传输的协议和功能的,但NFS却能让我们通过⽹络进⾏资料的分享,这是因为NFS使⽤了⼀些其它的传输协议。

⽽这些传输协议⽤到这个RPC功能的。

可以说NFS本⾝就是使⽤RPC的⼀个程序。

或者说NFS也是⼀个RPC SERVER。

所以只要⽤到NFS的地⽅都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。

这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。

可以这么理解RPC和NFS的关系:NFS是⼀个⽂件系统,⽽RPC是负责负责信息的传输。

⼆、系统环境系统平台:CentOS release 5.6 (Final)NFS Server IP:192.168.1.108防⽕墙已关闭/iptables: Firewall is not running.SELINUX=disabled三、安装NFS服务NFS的安装是⾮常简单的,只需要两个软件包即可,⽽且在通常情况下,是作为系统的默认包安装的。

•nfs-utils-* :包括基本的NFS命令与监控程序•portmap-* :⽀持安全NFS RPC服务的连接1、查看系统是否已安装NFS系统默认已安装了nfs-utils portmap 两个软件包。

一种LINUX操作系统守护进程的编程实现方法

关l
Fprintf(FilePtr,"程序正在运行于%sn",asctim e
( localtime(&Timelns) ) ) ; Fclose(FilePtr) ;
} }
e r tum0 ;
if(pid二 ) ) fork(
exit(0) ; H 是第一子进程, 结束第一子进程
else if(pid< 0)
统作业规划进程 CROND, 系统打印进程 LP〔之类。概而言
(2) 由作业规划进程 CROND来启动;
之, 守护进程能完成许多系统任务。 由于守护进程能实现许多功能, 所以研究 Linux 环境下 的守护进程的特性具有重要意义。许多学者都对它进行了 分析和研究, 守护进程浅析》 如《 描述了守护进程的原理及其
给出了 守护的 计 [2 .4 等 设 方法 .3 ], 等。 (
本文就 L INUX环境下守护进程的编程方法进行了分析,
并给出了相应的实例与方法。
人后台执行; 第二步:脱离控制终端, 登陆会话和进程组; 第三步:禁止进程重新打开控制终端; 第四步:关闭打开的文件描述符;
第五步:改变当前工作 目录;
于SY EMV 的SV 4(S ST R ystem V Release 4)并遵循 L U IN X业界 PO X (T Portable O SI he peratingS ystemInterfac )标准, S erkee 与B D4(B 脚 Softw design4)相比, 起 are 实现 来更为 方便。
中图分类号 TP316
文献标识码:A
文章编号:1672一 2841(2006)02一 0057一 03
作目录以及文件创建掩模。(这类环境通常是守护进程从执 行它的父进程, 一般是 LINUX 的 SHELL 中继承下来的) 。 另外守护进程的启动方式有以下三种: ( 1)在 Linux 系统启动时从系统启动脚本/ETC/RC. D 中
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux守护进程简介
概述:本文主要介绍Linux的守护进程。

文章可以分为四部分,第一部分简单介绍守护进程的基本概念;第二部分介绍守护进程的工作方式;第三部分介绍一下Redhat Linux中的守护进程管理工具;第四部分介绍如何使用nohup命令创建简单的守护进程。

本文以CentOS5.4 Linux为测试系统,所有实例均来自该测试系统。

文中所述内容适用于Redhat Linux,但并不适用于所有版本的Linux。

1.守护进程的基本概念
Linux或者Unix操作系统中,在系统引导的时候会开启很多服务,这些服务就叫做守护进程。

为了增加灵活性,root用户可以选择系统开启的模式,这些模式叫做运行级,每一种运行级以一定的方式配置系统。

守护进程是脱离于终端并且在后台运行的进程。

守护进程脱离终端是为了避免进程在执行过程中产生的信息在任何终端上显示,另外进程也不会被任何终端所产生的信息所打断。

守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。

它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。

守护进程常常在系统引导装入时启动,在系统关闭时终止。

Linux系统有很多守护进程,大多数服务都是通过守护进程实现的。

同时,守护进程还能完成许多系统任务。

例如,计划任务进程crond、http进程httpd等(这里的结尾字母d就是Daemon的意思)。

在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。

但是守护进程却能够突破这种限制,它从被执行时开始运转,直到整个系统被关闭时才退出。

如果想让某个进程不因为终端或其它的变化而受到影响,那么必须把这个进程变成一个守护进程。

2.守护进程的工作方式
守护进程的工作方式有两种,分别为独立运行(stand-alone)的工作方式和xinetd工作方式。

下面分别介绍这两种工作方式。

2.1.独立运行的守护进程
独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的init 脚本存放在/etc/rc.d/init.d目录下。

系统服务都是独立运行的守护进程,如syslogd 和cron等。

独立运行的守护进程工作方式被称为:stand-alone,它是Unix传统的C/S模式的访问模式。

服务器(即,进程)监听(Listen)在一个特定的端口上等待客户端的联机。

如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器(或,子进程)响应这个连接,而主服务器继续监听,并维持含有多个子服务器的子服务器池来等待下一个客户端请求。

stand-alone模式的工作原理如图1所示。

图1 stand-alone工作模式
工作在stand-alone模式下的网络服务有route、gated。

另外还有大家最熟悉的Web服务器Apache和邮件服务器Sendmail、域名服务器Bind。

在这些负载很大服务器上,都预先创建了子服务器,这样可以提高服务速度。

在Linux系统中处于stand-alone工作模式的服务由/etc/rc.d/ rcN.d(N是数字,表示系统的运行级)目录中的符号链接文件启动。

2.2.xinetd模式
从守护进程的概念可以看出,对于系统所要提供的每一种服务,都必须运行一个监听某个端口的守护进程,这通常意味着资源浪费。

为了解决这个问题,Linux引入了“网络守护进程服务”的概念。

Redhat Linux 使用的网络守护进程是xinetd(eXtended Internet Daemon)。

和stand-alone模式相比xinetd模式也称Internet Super-Server(超级服务器)。

xinetd进程能够同时监听多个指定的端口,在接受用户请求时,它能够根据用户请求端口的情况,启动不同的网络服务进程来处理这些用户请求。

我们可以把xinetd进程看成一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的守护进程,当处
理完客户请求后,再关闭守护进程。

xinetd模式工作原理如图2所示。

图2 xinetd工作模式
stand-alone工作模式中,系统必使每一个网络服务器进程都监听其服务器端口。

相比之下,运行单个xinetd进程就可以同时监听所有服务端口,这样就降低了系统开销,节省了系统资源。

但是对于访问量大、经常出现并发访问,xinetd 进程需要频繁启动对应的网络服务进程,反而会导致系统性能下降。

一般来说系统一些负载高的服务如sendmail、httpd服务是单独启动的。

xinetd 守护进程也采取stand-alone工作模式。

而其它服务类型都可以使用xinetd超级服务器管理。

查看系统当前运行的守护进程可以使用命令pstree。

3.Redhat Linux的守护进程管理工具
Redhat Linux提供了三种不同的守护进程管理工具:system-config-services、ntsysv、chkconfig。

我们可以根据具体需要灵活运用。

3.1.system-config-services工具
system-config-services(系统服务配置工具)是一个图形化应用程序,它显示了每项服务的描述,每项服务是否在系统引导时启动(运行级3、4、5),以及允许我们启动、停止或重新启动/etc/rc.d/init.d目录中的哪些系统服务,允许在需要时启动哪些xinetd服务。

要从桌面启动服务配置工具,可以通过单击面板上的“系统”-“管理”-“服务器设置”-“服务”,即可打开图形化的管理界面。

在终端shell命令行下输入命令“system-config-services”也可打开图形化的管理界面。

如图3和图4所示,分别显示了“服务配置”管理界面中“后台服务(S)”标签和“按需服务(O)”标签的内容。

通过图3和图4中关于“后台服务(S)”和“按需服务(O)”的描述,可以让我们对守护进程的stand-alone模式和xinetd模式有更深层次的理解。

图3 服务配置界面—后台服务(S)标签
图4 服务配置界面—按需服务(O)标签
system-config-services列出了/etc/rc.d/init.d目录下的服务和由xinetd控制的服务。

由于图形化控制界面比较直观,我们就不再介绍如何使用这个工具了。

3.2.ntsysv工具
ntsysv工具为管理系统服务项在指定的运行级初始化时是否自动启动提供了简单的界面。

我们也可以使用ntsysv来设置由xinetd管理的服务是否在需要时能够启动。

单独的ntsysv命令只会修改服务在系统当前的运行级初始化时的启动状况。

使用上下箭头来上下查看列表。

使用空格键来选择或取消选择服务。

要在服务列表和“确定”、“取消”按钮间切换,使用Tab键。

“*”标明某项服务被设为该运行级下自动启动。

按F1键会弹出每项服务的简短描述。

如图5所示,这是单独运行命令“ntsysv”后终端中显示的界面。

图5 ntsysv提供的配置界面
要配置不同的运行级,我们可以使用“--level”选项来指定一个或多个运行级。

例如,命令“ntsysv --level 345”配置运行级3、4和5,显示的配置界面与图5相同,不同的是这里对服务所做的配置都将同时应用到运行级3、4和5中。

3.3.chkconfig工具
关于如何使用chkconfig工具,请参考文档《Redhat Linux中用chkconfig管理系统服务项》,这里就不再叙述。

4.用nohup命令创建守护进程
在Unix/Linux中,普通进程可以用“&”符号放到后台运行,如果启动该进程的控制终端退出了,则该进程随即终止,因为普通进程不同于守护进程。

要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦;另一种方法是仍然用普通方法编程,然后用nohup命令去启动程序。

用nonup启动的程序所创建的进程,在控制终端退出后,进程仍在继续运行,起到了守护进程的作用(虽然它不是严格意义上的守护进程)。

nohup命令的语法:nohup program [> file] &
使用nohup命令,如果没有为程序的标准输出设置重定向,程序的标准输出被自动重定向到当前目录的nohup.out文件中,起到了log的作用。

如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。

如果没有文件能创建或打开以用于追加,那么命令不可调用。

示例:用nohup运行checkpublish.sh脚本,如图6所示。

图6 用nohup命令运行checkpublish.sh脚本
实例:用nohup运行checkpublish.sh脚本并设置输出重定向,如图7所示。

图7 用nohup命令运行checkpublish.sh脚本并设置输出重定向 编者注:写了这么多东西,不知道质量如何,希望和大家多多交流共同进步,我还是一个Linux的初学者,难免很多谬误,希望高手赐教指正,以期不断进步。

相关文档
最新文档