日期:2014-05-16  浏览次数:20612 次

linux服务 守护进程

概述

Linux服务器在启动时需要启动很多系统服务。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事
件。他们常常在系统引导装入时启动,在系统关闭时终止。

一 Linux系统服务存储位置

/etc/init.d -> /etc/rc.d/init.d : /etc/rc.d/init.d 下包含了所有的service的控制脚本,/etc/init.d 是 /etc/rc.d/init.d 的链接。

/etc/rc*.d -> /etc/rc.d/rc*.d : /etc/rc.d/rc*.d 下包含了所有的service的自动启动选项的配置,/etc/rc*.d 是 /etc/rc.d/rc*.d 的链接。

/etc/rc.d/rc*.d/ 下的脚本是对 /etc/rc.d/init.d 下的脚本的链接,只是名字增加K或S前缀,用来表示自动启动或自动停止。

?

所有的service相关的目录树结构如下:

/etc
|-- init.d -> rc.d/init.d
|-- rc -> rc.d/rc
|-- rc.d
| |-- init.d
| | |-- NetworkManager
| | |-- network
| | |-- nfs
| | |-- xinetd
| | |-- ... ...
| |-- rc
| |-- rc.local
| |-- rc.sysinit
| |-- rc3.d
| | |-- K02NetworkManager -> ../init.d/NetworkManager
| | |-- K20nfs -> ../init.d/nfs
| | |-- S10network -> ../init.d/network
| | |-- S56xinetd -> ../init.d/xinetd
| | |-- ... ...
|-- rc.local -> rc.d/rc.local
|-- rc.news
|-- rc.sysinit -> rc.d/rc.sysinit
|-- rc0.d -> rc.d/rc0.d
|-- rc1.d -> rc.d/rc1.d
|-- rc2.d -> rc.d/rc2.d
|-- rc3.d -> rc.d/rc3.d
|-- rc4.d -> rc.d/rc4.d
|-- rc5.d -> rc.d/rc5.d
|-- rc6.d -> rc.d/rc6.d

二? 一个service的组成和部署

一个service通常包含一个可执行的文件和一个service控制脚本。

他们分别存放于以下位置:

service 程序本身的可执行程序

/usr/bin

控制service的脚本( 控制service的脚本的格式相对固定,至少支持start,stop,status参数 )

/etc/rc.d/init.d

?

三 MYSQL的 Service/Daemon

1 启动MYSQL 守护进程

/etc/rc.d/init.d/mysqld restart

等同于

service mysqld restart

?

MYSQL启动后 有如下两个进程

[root@localhost etc]# ps -ef|grep mysqld
root???? 11469???? 1? 0 06:49 pts/4??? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql??? 11570 11469? 0 06:49 pts/4??? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

?

参考资料

===============================================

http://www.cnblogs.com/itech/archive/2011/08/22/2149684.html

http://linux.chinaunix.net/techdoc/develop/2008/12/31/1055904.shtml