doeamon
daemon 与服务 (service)
service :常驻在记体体中的程序,且可以提供一些系统或网络功能,那就是服务
系统为了某些功能必须要提供一些服务 (不论是系统本身还是网络方面),这个服务就称为 service
service 的提供总是需要程序的运行,所以达成这个 service 的程序我们就称呼他为 daemon
比如:达成循环型例行性工作排程服务 (service) 的程序为 crond 这个 daemon
daemon 的主要分类
- stand alone:可独立启动的
可以自行启动而不必透过其他机制的管理
常见的有: WWW 的 daemon (httpd)、FTP 的 daemon (vsftpd) - super daemon:一支特殊的 daemon 来统一管理
具有安全控管的机制,就是类似网络防火墙的功能
常见的:例如 telnet- daemon 工作形态的类型
signal-control 要有任何客户端的需求进来,他就会立即启动去处理
interval-control 每隔一段时间就主动的去运行某项工作 - daemon 的命名守则
被挂上Linux 使用时,通常在服务的名称之后会加上一个 d
例如:例行性命令的创建的 at, 与 cron 这两个服务,他的程序文件名会被取为 atd 与 crond
- daemon 工作形态的类型
/etc/services
查阅一下 httpd 这个程序 (man httpd)
daemon 的启动脚本 (shell script) 放在哪里
- /etc/init.d/* :启动脚本放置处
- /etc/sysconfig/* :各服务的初始化环境配置文件
- /etc/xinetd.conf, /etc/xinetd.d/* :super daemon 配置文件
- /etc/* :各服务各自的配置文件
- /var/lib/* :各服务产生的数据库
举例:数据库管理系统 MySQL 的数据库默认就是写入/var/lib/mysql/ 这个目录下
- /var/run/* :各服务的程序之 PID 记录处Stand alone 的 /etc/init.d/* 启动
例子:
/etc/init.d/syslog
/etc/init.d/syslog status
/etc/init.d/syslog restart
/etc/init.d/syslog status
例子2:
service [service name] (start|stop|restart|...)
service --status-all
例子3:重新启动 crond 这支 daemon
service crond restart
/etc/init.d/crond restart
例子4:显示出目前系统上面所有服务的运行状态
service --status-all
Super daemon 的启动方式
例子1:
uper daemon 所管理的服务是否有启动
grep -i 'disable' /etc/xinetd.d/*
例子2:
假设我想要启动如上的 rsync 这个服务
1. 先修改配置文件成为启动的模样:vim /etc/xinetd.d/rsync
disable = no
2. 重新启动 xinetd 这个服务:/etc/init.d/xinetd restart
3. 观察启动的端口:grep 'rsync' /etc/services
netstat -tnlp | grep 873
xinetd 这个服务的默认配置文件 /etc/xinetd.conf
vim /etc/xinetd.conf
attribute (功能)
disable:配置值:[yes|no],默认 disable = yes
id(服务识别):配置值:[服务的名称]
server(程序文件名):配置值:[program 的完整檔名]
server_args(程序参数):配置值:[程序相关的参数]
user(服务所属UID):配置值:[使用者账号]
socket_type
(封包类型)
配置值:[stream|dgram|raw],与封包有关
protocol
(封包类型)
配置值:[tcp|udp],通常使用 socket_type 取代此配置
wait
(联机机制)
配置值:[yes(single)|no(multi)],默认 wait = no
instances
(最大联机数)
配置值:[数字或 UNLIMITED]
per_source
(单一用户来源)
配置值:[一个数字或 UNLIMITED]
cps
(新联机限制)
配置值:[两个数字]
log_type
(登录档类型)
配置值:[登录项目 等级]
log_on_success
log_on_failure
(登录状态)
配置值:[PID,HOST,USERID,EXIT,DURATION]
env
(额外变量配置)
配置值:[变量名称=变量内容]
port
(非正规埠号)
配置值:[一组数字(小于 65534)]
redirect
(服务转址)
配置值:[IP port]
includedir
(呼叫外部配置)
配置值:[目录名称]
bind
(服务接口锁定)
配置值:[IP]
interface
配置值:[IP]
only_from
(防火墙机制)
配置值:[0.0.0.0, 192.168.1.0/24, hostname, domainname]
no_access
(防火墙机制)
配置值:[0.0.0.0, 192.168.1.0/24, hostname, domainname]
access_times
(时间控管)
配置值:[00:00-12:00, HH:MM-HH:MM]
umask
配置值:[000, 777, 022]