[Linux]系统服务与daemon


Linux的系统服务是以daemon运行的,主要分为两大类daemon:

1)standalone:可以自行单独启动服务,如httpd、vsftpd等,它的特点是响应速度快,但资源占用高。

2)super daemon:一个特殊的daemon统一管理,当客户端没有请求时,各项服务不启动,直到有客户端请求时,super daemon才唤醒相应的服务。

daemon的启动脚本与启动方式

1)/etc/init.d/*:启动脚本放置处

2)/etc/sysconfig/*:服务的初始化环境配置文件

3)/etc/xinetd.conf 和 /etc/xinetd.d/*:super daemon的配置文件

4)/etc/*:服务的配置文件

5)/var/lib/*:服务产生的数据库

6)/var/run/*:服务的PID

standalone的启动关闭方式

首先把standalone的启动脚本放到/etc/init.d/目录下,然后就可以利用该脚本启动关闭该服务:

# /etc/init.d/syslog
Usage: /etc/init.d/syslog {start|stop|status|restart|condrestart}
你还可以利用service命令(效果和/etc/init.d/*一样):
service [service name] (start|stop|restart|status|...)
service --status-all
super daemon的启动关闭方式
super daemon本身是一个standalone服务,如下所示:
# /etc/init.d/xinetd status
xinetd (pid  3543) is running...
而由它管理的服务是super daemon,它们的配置文件在/etc/xinetd.d/*

下面看一个例子:

首先,编辑/etc/xinetd.d/rsync文件,设置disable = no,表示启动该super daemon

然后,重启xinetd这个服务:

# /etc/init.d/xinetd restart
Stopping xinetd: [  OK  ]
Starting xinetd: [  OK  ]
然后,就可以看到该服务已启动:
# cat /etc/services |grep rsync
rsync           873/tcp                         # rsync
rsync           873/udp                         # rsync

chkconfig - 设置开机启动daemon

chkconfig --list [服务名称]   --查看
chkconfig [--level [0123456]] [服务名称] [on|off]  
#查看httpd的配置情况
# chkconfig --list  httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
#查看在level 3下有哪些服务是自动启动的
# chkconfig --list | grep '3:on'
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:on    3:on    4:on    5:on    6:off
microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
#配置httpd在level为345的情况下自动启动
# chkconfig --level 345 httpd on

chkconfig除了可以设置系统服务之外,还可以添加自己的服务,如:

#vi /etc/init.d/myservice
#!/bin/bash
# chkconfig: 35 80 70
......

chkconfig --add myservice
chkconfig --del myservice

netstat - 查看系统开启的网络服务

netstat -tulp  --找出目前系统开启的网络服务有哪些
netstat -lnp  --找出所有的有监听的服务(包含socket状态)
参考文件:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

相关内容