正文
12.1 服务简介与分类
1、服务的分类
启动与自启动
- 服务启动:就是在当前系统中让服务运行,并提供功能。
- 服务自启动:自启动是指让服务在系统开机或重启动之后,随着系统的启动而自动启动服务。
查询已安装的服务
- RPM包安装的服务
chkconfig --list
#查看服务自启动状态,可以看到所有RPM包安装的服务
[vagrant@localhost ~]$ chkconfig --list
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iscsi 0:off 1:off 2:off 3:on 4:on 5:on 6:off
iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off
mcollective 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off
multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nginx-debug 0:off 1:off 2:off 3:off 4:off 5:off 6:off
php-fpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
puppet 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
vboxadd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxadd-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxadd-x11 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[vagrant@localhost ~]$
Centos7.9系统下和上面不一样:
[root@10 sf_develop]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
[root@10 sf_develop]#
Linux中有七个运行级别,分别为0~7
0级:关机
1级:单用户(找回丢失密码)
2级:多用户无网络
3级:多用户有网络,最常用的级别
4级:保留,目前Linux暂无使用
5级:图像界面
6级:重启
系统运行级别配置文件:/etc/inittab
查看服务是否启动:
[root@localhost vagrant]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 19232 1488 ? Ss 07:44 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 07:44 0:00 [kthreadd]
root 3 0.1 0.0 0 0 ? S 07:44 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 07:44 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 07:44 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S 07:44 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 07:44 0:00 [migration/1]
root 8 0.0 0.0 0 0 ? S 07:44 0:00 [stopper/1]
root 9 0.0 0.0 0 0 ? S 07:44 0:00 [ksoftirqd/1]
root 10 0.0 0.0 0 0 ? S 07:44 0:00 [watchdog/1]
root 11 0.0 0.0 0 0 ? S 07:44 0:00 [events/0]
root 12 0.0 0.0 0 0 ? S 07:44 0:00 [events/1]
root 13 0.0 0.0 0 0 ? S 07:44 0:00 [events/0]
root 14 0.0 0.0 0 0 ? S 07:44 0:00 [events/1]
root 15 0.0 0.0 0 0 ? S 07:44 0:00 [events_long/0]
root 16 0.0 0.0 0 0 ? S 07:44 0:00 [events_long/1]
root 17 0.0 0.0 0 0 ? S 07:44 0:00 [events_power_ef]
root 18 0.0 0.0 0 0 ? S 07:44 0:00 [events_power_ef]
root 19 0.0 0.0 0 0 ? S 07:44 0:00 [cgroup]
root 20 0.0 0.0 0 0 ? S 07:44 0:00 [khelper]
root 21 0.0 0.0 0 0 ? S 07:44 0:00 [netns]
root 22 0.0 0.0 0 0 ? S 07:44 0:00 [async/mgr]
root 23 0.0 0.0 0 0 ? S 07:44 0:00 [pm]
root 24 0.0 0.0 0 0 ? S 07:44 0:00 [sync_supers]
root 25 0.0 0.0 0 0 ? S 07:44 0:00 [bdi-default]
root 26 0.0 0.0 0 0 ? S 07:44 0:00 [kintegrityd/0]
root 27 0.0 0.0 0 0 ? S 07:44 0:00 [kintegrityd/1]
root 28 0.0 0.0 0 0 ? S 07:44 0:00 [kblockd/0]
root 29 0.0 0.0 0 0 ? S 07:44 0:00 [kblockd/1]
root 30 0.0 0.0 0 0 ? S 07:44 0:00 [kacpid]
root 31 0.0 0.0 0 0 ? S 07:44 0:00 [kacpi_notify]
root 32 0.0 0.0 0 0 ? S 07:44 0:00 [kacpi_hotplug]
root 33 0.0 0.0 0 0 ? S 07:44 0:00 [ata_aux]
root 34 0.0 0.0 0 0 ? S 07:44 0:00 [ata_sff/0]
root 35 0.0 0.0 0 0 ? S 07:44 0:00 [ata_sff/1]
root 36 0.0 0.0 0 0 ? S 07:44 0:00 [ksuspend_usbd]
root 37 0.0 0.0 0 0 ? S 07:44 0:00 [khubd]
root 38 0.0 0.0 0 0 ? S 07:44 0:00 [kseriod]
root 39 0.0 0.0 0 0 ? S 07:44 0:00 [md/0]
root 40 0.0 0.0 0 0 ? S 07:44 0:00 [md/1]
root 41 0.0 0.0 0 0 ? S 07:44 0:00 [md_misc/0]
root 42 0.0 0.0 0 0 ? S 07:44 0:00 [md_misc/1]
root 43 0.0 0.0 0 0 ? S 07:44 0:00 [linkwatch]
root 44 0.0 0.0 0 0 ? S 07:44 0:00 [khungtaskd]
root 45 0.0 0.0 0 0 ? S 07:44 0:00 [kswapd0]
root 46 0.0 0.0 0 0 ? SN 07:44 0:00 [ksmd]
root 47 0.0 0.0 0 0 ? SN 07:44 0:00 [khugepaged]
root 48 0.0 0.0 0 0 ? S 07:44 0:00 [aio/0]
root 49 0.0 0.0 0 0 ? S 07:44 0:00 [aio/1]
root 50 0.0 0.0 0 0 ? S 07:44 0:00 [crypto/0]
root 51 0.0 0.0 0 0 ? S 07:44 0:00 [crypto/1]
root 58 0.0 0.0 0 0 ? S 07:44 0:00 [kthrotld/0]
root 59 0.0 0.0 0 0 ? S 07:44 0:00 [kthrotld/1]
root 61 0.0 0.0 0 0 ? S 07:44 0:00 [kpsmoused]
root 62 0.0 0.0 0 0 ? S 07:44 0:00 [usbhid_resumer]
root 63 0.0 0.0 0 0 ? S 07:44 0:00 [deferwq]
root 96 0.0 0.0 0 0 ? S 07:44 0:00 [kdmremove]
root 97 0.0 0.0 0 0 ? S 07:44 0:00 [kstriped]
root 206 0.0 0.0 0 0 ? S 07:44 0:00 [scsi_eh_0]
root 225 0.0 0.0 0 0 ? S 07:44 0:00 [scsi_eh_1]
root 226 0.0 0.0 0 0 ? S 07:44 0:00 [scsi_eh_2]
root 289 0.0 0.0 0 0 ? S 07:44 0:00 [kdmflush]
root 291 0.0 0.0 0 0 ? S 07:44 0:00 [kdmflush]
root 309 0.0 0.0 0 0 ? S 07:44 0:00 [jbd2/dm-0-8]
root 310 0.0 0.0 0 0 ? S 07:44 0:00 [ext4-dio-unwrit]
root 391 0.0 0.0 10796 904 ? S<s 07:44 0:00 /sbin/udevd -d
root 452 0.0 0.0 0 0 ? S 07:44 0:00 [iprt/0]
root 453 0.0 0.0 0 0 ? S 07:44 0:00 [iprt/1]
root 700 0.0 0.0 0 0 ? S 07:44 0:00 [jbd2/sda1-8]
root 701 0.0 0.0 0 0 ? S 07:44 0:00 [ext4-dio-unwrit]
root 733 0.0 0.0 0 0 ? S 07:44 0:00 [kauditd]
root 809 0.0 0.0 0 0 ? S 07:44 0:00 [flush-253:0]
root 966 0.0 0.0 9120 688 ? Ss 07:45 0:00 /sbin/dhclient -1 -q -cf /etc/dhcp/dhclient-eth0.conf -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.
root 1026 0.0 0.0 27596 796 ? S<sl 07:45 0:00 auditd
root 1048 0.0 0.0 249088 1584 ? Sl 07:45 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root 1160 0.0 0.0 335484 1272 ? Sl 07:45 0:00 /usr/sbin/VBoxService
root 1184 0.0 0.0 66232 1232 ? Ss 07:45 0:00 /usr/sbin/sshd
root 1217 0.0 0.0 108300 1616 ? S 07:45 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.p
mysql 1421 0.5 24.0 1408836 462640 ? Sl 07:45 0:02 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/
root 1559 0.0 0.1 80876 3420 ? Ss 07:45 0:00 /usr/libexec/postfix/master
postfix 1574 0.0 0.1 80956 3384 ? S 07:45 0:00 pickup -l -t fifo -u
postfix 1575 0.0 0.1 81024 3420 ? S 07:45 0:00 qmgr -l -t fifo -u
root 1595 0.0 0.0 47360 1080 ? Ss 07:45 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 1596 0.0 0.0 47752 1804 ? S 07:45 0:00 nginx: worker process
root 1608 0.0 0.0 116860 1200 ? Ss 07:45 0:00 crond
root 1621 0.0 0.0 4064 592 tty1 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty1
root 1623 0.0 0.0 4064 592 tty2 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty2
root 1625 0.0 0.0 4064 588 tty3 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty3
root 1627 0.0 0.0 4064 592 tty4 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty4
root 1629 0.0 0.0 4064 592 tty5 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty5
root 1631 0.0 0.0 4064 588 tty6 Ss+ 07:45 0:00 /sbin/mingetty /dev/tty6
root 2451 0.0 0.2 102656 4804 ? Ss 07:45 0:00 sshd: vagrant [priv]
vagrant 2453 0.0 0.1 102656 1928 ? S 07:45 0:00 sshd: vagrant@pts/0
vagrant 2454 0.0 0.0 108304 1908 pts/0 Ss 07:45 0:00 -bash
root 2474 0.0 0.1 175108 2656 pts/0 S 07:47 0:00 sudo su
root 2475 0.0 0.0 145000 1556 pts/0 S 07:47 0:00 su
root 2476 0.0 0.0 108304 1916 pts/0 S 07:47 0:00 bash
root 2494 0.0 0.0 4932 524 ? Ss 07:47 0:00 iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
root 2495 0.0 0.1 5436 3384 ? S<Ls 07:47 0:00 iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
root 2502 0.0 0.0 0 0 ? S 07:47 0:00 [iscsi_eh]
root 2504 0.0 0.0 10792 832 ? S< 07:47 0:00 /sbin/udevd -d
root 2505 0.0 0.0 10792 832 ? S< 07:47 0:00 /sbin/udevd -d
root 2531 0.0 0.0 110232 1164 pts/0 R+ 07:51 0:00 ps aux
[root@localhost vagrant]#
[root@localhost vagrant]# ps aux | grep crond
root 1608 0.0 0.0 116860 1200 ? Ss 07:45 0:00 crond
root 2534 0.0 0.0 103308 892 pts/0 S+ 07:52 0:00 grep crond
[root@localhost vagrant]#
- 源码包安装的服务
查看服务安装位置,一般是/usr/local/下
RPM安装服务和源码包安装服务的区别
RPM安装服务和源码包安装服务的区别就是安装位置的不同
- 源码包安装在指定位置,一般是/usr/local/
- RPM包安装在默认位置中
service 、chkconfig 命令 搜索的是 /etc/rc.d/init.d/
目录:
[root@localhost vagrant]# ls /etc/rc.d/init.d/
auditd iptables multipathd postfix sshd
blk-availability iscsi mysqld puppet udev-post
crond iscsid netconsole rdisc vboxadd
functions killall netfs restorecond vboxadd-service
halt lvm2-lvmetad network rsyslog vboxadd-x11
htcacheclean lvm2-monitor nginx sandbox
httpd mcollective nginx-debug saslauthd
ip6tables mdmonitor php-fpm single
[root@localhost vagrant]#
[root@localhost vagrant]# service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
[root@localhost vagrant]#
12.2 RPM包安装服务的管理
12.2.1 独立服务的管理
1、RPM包安装服务的位置
RPM安装服务和源码包安装服务的区别就是安装位置的不同
- 源码包安装在指定位置,一般是/usr/local/
- RPM包安装在默认位置中
/etc/init.d/:启动脚本位置 (/etc/rc.d/init.d/ 软连接) 独立服务脚本
/etc/sysconfig/:初始化环境配置文件位置
/etc/:配置文件位置
/etc/xinetd.conf:xinetd配置文件
/etc/xinetd.d/:基于xinetd服务的启动脚本
/var/lib/:服务产生的数据放在这里
/var/log/:日志
2、独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart|
service 独立服务名 start|stop|restart||status
service是redhat系列辅助快捷命令
service --status-all
# 查看rpm安装的所有服务的状态
[root@localhost vagrant]# service --status-all
auditd (pid 1026) is running...
crond (pid 1608) is running...
htcacheclean is stopped
httpd is stopped
ip6tables: Firewall is not running.
iptables: Firewall is not running.
iscsi is stopped
iscsid (pid 2495) is running...
lvmetad is stopped
dmeventd is stopped
mcollectived is stopped
mdmonitor is stopped
multipathd is stopped
mysqld (pid 1421) is running...
netconsole module not loaded
Configured devices:
lo eth0
Currently active devices:
lo eth0
nginx (pid 2559) is running...
nginx-debug dead but pid file exists
php-fpm is stopped
master (pid 1559) is running...
puppet is stopped
rdisc is stopped
rsyslogd (pid 1048) is running...
sandbox is stopped
saslauthd is stopped
openssh-daemon (pid 1184) is running...
The VirtualBox Additions are currently running.
Checking for VBoxService ...running
[root@localhost vagrant]#
3、独立服务的自启动
方法1:
chkconfig [--level 运行级别] [独立服务名] [on|off]
[root@localhost ~]# chkconfig --level 2345 nginx on
[root@localhost ~]# chkconfig nginx off
方法2:
修改/etc/rc.d/rc.local文件,推荐方法
加入启动命令行
/etc/rc.d/init.d/nginx start
方法3:
使用ntsysv命令管理自启动,是redhat系列辅助快捷命令
12.2.2 基于xinetd服务的管理
1、安装xinetd与telnet
[root@localhost ~]# yum -y install xinetd
[root@localhost ~]# yum -y install telnet-server
2、xinetd服务的启动
[root@localhost ~]# vi /etc/xinetd.d/telnet
service telnet <-服务的名称为telnet
{
flags = REUSE <-标志为REUSE,设定TCP/IP socket可重用
socket_type = stream <-使用TCP协议数据包
wait = no <-允许多个连接同时连接
user = root <-启动服务的用户为root
server = /usr/sbin/in.telnetd <-服务的启动程序
log_on_failure += USERID <-登陆失败后,记录用户的ID
disable = no <-服务不启动
}
重启xinetd服务
[root@localhost ~]# service xinetd restart
3、xinetd服务的自启动
方法1:
[root@localhost ~]# chkconfig telnet on
方法2:
ntsysv
12.3 源码包安装服务的管理
1、源码包安装服务的启动
使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。
/usr/local/apache2/bin/apachectl start|stop
2、源码包服务的自启动
[root@localhost ~]# vi /etc/rc.d/rc.local
加入
/usr/local/apache2/bin/apachectl start
3、让源码包服务被服务管理命令识别
让源码包的apache服务能被service命令管理启动
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
让源码包的apache服务能被chkconfig与ntsysv命令管理自启动
vi /etc/init.d/apache
# chkconfig: 35 86 76
#指定httpd脚本可以被chkconfig命令管理。格式是: chkconfig: 运行级别 启动顺序 关闭顺序
# description: source package apache
#说明,内容随意
[root@localhost ~]# chkconfig --add apache
#把源码包apache加入chkconfig命令
12.4 服务管理总结
常见服务的作用
RPM包与源码包的最大不同是安装路径不同
RPM包->独立服务:
独立服务是存放到内存中,当系统需要调用服务时,直接到内存里面找,特点:响应速度快
RPM包->基于xinetd服务:
xinetd服务没有存放到内存中,是存放到xinetd(超级守护进程)中,当系统需要调用xinetd服务时, 首先去访问xinetd,然后xinetd去找自身有没有这服务,最后将结果返回,响应速度比独立服务慢