首页 > 代码库 > 认识linux系统服务(daemons)
认识linux系统服务(daemons)
linux系统服务分类
一般分成两大类,独立启动的服务以及超级服务。
1、stand_alone:此daemon可以自行单独启动服务。
2、super daemon:一个特殊的daemon来统一管理。
服务与端口的对应
系统提供的网络服务通常会与端口进行对应,在文件/etc/services中可以查看各个服务与端口的对应。
在文件中可查看ftp的端口号:
ftp 21/tcp ftp 21/udp fsp fspd
daemon的启动脚本与启动方式
stand alone的启动方式
服务的启动脚本在/etc/init.d目录下,该目录是个链接目录,实际目录是/etc/rc.d/init.d。这里面的脚本会检测环境、查找配置文件以及其他的一些准备工作,然后调用服务程序。一般都是以下面的形式进行调用,command对应/etc/init.d目录下的shell脚本:
command (start|stop|status)
如查看ftp服务的状态:
[root@rhl6 init.d]# ./vsftpd status vsftpd is stopped
如上面所述,vsftpd是/etc/init.d目录下的一个shell脚本。
除了使用这种方式对服务进行启动、停止、查看状态外,linux还提供了一个shell脚本:service。
所以查看ftp服务的状态还可以用如下的方式:
[root@rhl6 init.d]# service vsftpd status vsftpd is stopped
service脚本在/etc/init.d目录下查找第一个参数指定的shell脚本,然后调用该shell脚本,并将第二个参数作为此shell脚本的参数。其实质还是和上面的那种调用方式一样。具体的实现细节可以查看service脚本的实现。
super daemon的启动方式
其实super daemon本身是一个stand alone服务(默认情况下,xinetd没有安装。),根据其管理的服务的配置文件,再对其他服务进行管理。
其管理的服务配置文件在/etc/xinetd.d目录下,默认值配置文件在/etc/xinetd.conf中。
如,要启动由xinetd管理的rsync服务,需修改文件/etc/xinetd.d/rsync,将disable=yes修改为disable=yes:
# default: off # description: The rsync server is a good addition to an ftp server, as it # allows crc checksumming etc. service rsync { disable = no flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
然后重新启动xinetd:
service xinetd restart
设置开机后立即启动服务
chkconfig:设置系统服务
chkconfig [--level [0123456]] [服务名称] [on|off]
[root@rhl6 init.d]# chkconfig --level 3 vsftpd on [root@rhl6 init.d]# chkconfig --list | grep vsftpd vsftpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
[root@rhl6 init.d]# ls -l /etc/rc.d/rc3.d/ | grep vsftpd lrwxrwxrwx. 1 root root 16 Nov 30 13:25 S60vsftpd -> ../init.d/vsftpd
chkconfig:设置自己的系统服务
[root@rhl6 init.d]# chkconfig [--add|--del] [服务名称] 参数: --add:增加一个服务名称给chkconfig来管理,该服务名称必须在/etc/init.d/内 --del:删除一个给chkconfig管理的服务具体的例子可关注后续memcached服务启动的博客。
认识linux系统服务(daemons)