.
3ss.cn

Linux 服务管理之init

服务是系统提供的某种功能,由对应的进程实现,通常是常驻的守护进程;因此通常也说“服务”来代指对应的系统进程
按照启动管理方式,服务可以分成两类:独立运行的和统一管理的;独立运行的服务顾名思义就是可以单独运行的服务,是一直驻留在内存中,可以对请求立刻做出反应的,例如 www 服务等;统一管理的服务,像是 telnet 等,需要一个特殊的 super daemon 来接受请求后唤醒(调入对应进程到内存执行)
按照工作类型又可以分为:信号驱动和时间驱动;信号驱动由信号,比如一个客户端的请求,来使服务响应;时间驱动按照固定时间来执行
服务命名通常是 xxxd 这样的以字母 d 作为结尾
历史上,Linux 一直使用init来启动,也就由其来管理服务;由于init的种种缺点,现在大多数发行版都使用systemd来管理启动和服务,对应工具systemctl
init
相关目录
/etc/init.d/ 所有的服务启动脚本存在这个目录下
/etc/sysconfig/ 各服务相关参数文件
/etc/xinetd.conf && /etc/xinetd.d/ 存放 super daemon 相关服务配置
/etc/ 存放各服务配置文件
/var/lib/ 存放服务产生的数据库
/var/run/ 存放服务pid
相关命令

 

# 可以直接使用对应脚本来进行服务管理
# 格式为:/etc/init.d/servicename {start|stop|status|restart|condrestart}
# 例如,查看 syslog 服务状态:
/etc/init.d/syslog status

# 也可以通过 service 命令来管理(service其实就是一个脚本)
# 格式为:service servicename {start|stop|status|restart|condrestart}
# 例如,查看 syslog 服务状态:
service syslog status
# 查看当前所有服务状态:
service --status-all

super daemon
上面说过,通过super daemon形式管理的服务,是由守护进程xinetd来负责调度的;xinetd本身是和其他可独立运行的服务一样进行管理的
所有由xinetd管理的服务有一个保底默认配置/etc/xinetd.conf;各服务的细化配置存放在/etc/xinetd.d/目录下
配置格式如下:

# 以service开头,后面跟着具体的服务名字
# attribute表示配置参数,value为配置值
# assign_op表示参数形式:
#     = : 将此参数设定为此值
#     +=: 将此参数添加上此值
#     -=: 将此参数中去掉此值
service 
{
        ...
}

配置参数如下:
disable [yes|no] 是否启动,默认都是不启动的,需要启动须设置成
id [服务名称] 用来指定服务名称
server [程序文件名] 启动程序的绝对路径
server_args [启动参数] 启动程序时的参数
user [用户账户] 指定服务所属账户
group [用户组账户] 指定服务所属用户组
socket_type [stream|dgram|raw] 数据包类型
protocol [tcp|udp] 协议类型
wait [yes|no] 默认为no,多用户请求时是否需要排队等待
instances [UNLIMITED|数字] 最大连接数
per_source [UNLIMITED|数字] 单个源ip的最大连接数
cps [两个数字] 第一个数字表示1s内能够接受的新连接数,第二个数字表示超出重试的时间
log_type [日志等级] 默认为info
log_on_success [PID,HOST,USERID,EXIT,DURATION] 登录成功记录日志内容
log_on_fail [PID,HOST,USERID,EXIT,DURATION] 登录失败记录日志内容
env [name=value] 设置进程环境变量
port [数字] 进程端口
redirect [IP Port] 服务转发
includedir [目录名] 将指定目录下所有文件内容加到此文件中
bind [IP] 只允许这个源ip访问
interface [IP] 同上
only_from [0.0.0.0, 192.168.1.0/24,hostname,domainname] 同上,可访问ip,0.0.0.0表示不限制
no_access [0.0.0.0, 192.168.1.0/24,hostname,domainname] 同上,不可访问ip
access_times [HH:MM-HH:MM] 24小时制时间,指定在这个时间段开放
umask [000,777,022] 指定umask值
服务管理

# 查看系统服务默认开机启动与否
# chkconfig --list [servicename]
# 例如:
chkconfig --list rsync

# 设置系统服务默认开机启动与否
# chkconfig --level [0123456] [servicename] [on|off]
# 参数level指定 runlevel(后面有对runlevel的说明)
# 例如:
chkconfig --level 345 atd on

本教程由互联学术原创编写,转载请注明3ss.cn出处!

赞(0)
未经允许不得转载:互联学术 » Linux 服务管理之init

评论 抢沙发