python linux服务_Linux服务管理

1、简介与分类

1.系统的运行级别

运行级别含义

0

关机

1

单用户模式,可以想象为Windows的安全模式,主要用于系统修复

2

不完全的命令行模式,不含NFS服务

3

完全的命令行模式,就是标准字符界面

4

系统保留

5

图形模式

6

重启动

运行级别命令

[root@AmorLei ~]# runlevel # 查看运行级别命令

N3[root@AmorLei~]# init 运行级别 # 修改运行级别命令

系统默认运行级别

[root@AmorLei ~]# vi /etc/inittab

# inittab is only used by upstartforthe default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by/etc/init/rcS.conf

#

# Individual runlevels are started by/etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by/etc/init/tty.conf and /etc/init/serial.conf,

# with configurationin /etc/sysconfig/init.

#

# For information on how towriteupstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

#0 -halt (Do NOT set initdefault to this)

#1 -Single user mode

#2 - Multiuser, without NFS (The same as 3, if you donot have networking)

#3 -Full multiuser mode

#4 -unused

#5 -X11

#6 -reboot (Do NOT set initdefault to this)

#id:3:initdefault:

[root@AmorLei ~]# vi /etc/inittab

2.服务的分类

独立的服务:可以独立启动服务。其特点是:

可以自行独立启动,无需通过其他机制的管理

独立服务一旦启动加载到内存后,就会一直占用内存空间和系统资源,直到该服务被停止。

由于服务一直在运行,所以对client的请求有更快的响应速度。

基于xinetd服务:通过xinetd来负责启动、管理其它服务(逐渐淘汰)。其特点是:

所有的服务由xinetd控管,因此对xinetd可以有安全控管的机制,如网络防火墙

clinet请求前,所需服务是未启动的;直到client请求服务时,xinetd才会唤醒相应服务;一旦连接结束后,相应服务会被关闭。所以super-daemon方式不会一直占用系统资源

既然有请求才会去启动服务,所以server端的响应速度自然不如stand-alone方式来得快

查询已安装的服务

RPM包安装的服务

[root@AmorLei ~]# chkconfig --list

network0:off 1:off 2:on 3:on 4:on 5:on 6:off

...

查看服务自启动状态,可以看到所有RPM包安装的服务

源码包安装的服务

查看服务安装位置,一般是/usr/local/下

启动与自启动

服务启动:就是在当前系统中让服务运行,并提供功能。

服务自启动:自启动是指让服务在系统开机或重启动之后,随着系统的启动而自动启动服务。

3.服务与端口

端口

如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536个。

端口与服务的对应

/etc/services 文件记录了网络服务名和它们对应使用的端口号及协议。

查询系统中开启的服务

netstat -tlunp-t 列出tcp数据-u 列出udp数据-l 列出正在监听的网络服务(不包含已连接的网络服务)-n 用端口号来显示服务,而不是用服务名-p 列出该服务的进程ID(PID)

会列出系统中所有的已经启动的服务

[root@AmorLei etc]# netstat -tlunp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6054/httpd

tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1407/sshd

tcp0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1570/master

udp0 0 172.17.190.178:123 0.0.0.0:* 1418/ntpd

udp0 0 127.0.0.1:123 0.0.0.0:* 1418/ntpd

udp0 0 0.0.0.0:123 0.0.0.0:* 1418/ntpd

[root@AmorLei etc]# netstat-an

2、RPM包服务管理

1.独立服务的管理

RPM安装服务和源码包安装服务的区别

RPM安装服务和源码包安装服务的区别就是安装位置的不同

源码包安装在指定位置,一般是/usr/local/

RPM包安装在默认位置中

usr是Unix System Resource,即Unix系统资源的缩写。

/etc/init.d/:启动脚本位置/etc/sysconfig/:初始化环境配置文件位置/etc/:配置文件位置/etc/xinetd.conf :xinetd配置文件/etc/xinetd.d/:基于xinetd服务的启动脚本/var/lib/:服务产生的数据放在这里/var/log/ :日志

独立服务的启动

/etc/init.d/独立服务名 start | stop | status | restart

[root@AmorLei ~]# /etc/init.d/httpd start

正在启动 httpd:

[root@AmorLei~]# /etc/rc.d/init.d/httpd start

[root@AmorLei~]# ls -l /etc/init.d

lrwxrwxrwx.1 root root 11 Aug 24 12:21 /etc/init.d -> rc.d/init.d

service 独立服务名 start|stop|restart|status

只有RedHat系列的Linux系统可以此命令,源码包不可以使用此命令。

[root@AmorLei ~]# service httpd status

httpd (pid13986) 正在运行...

独立服务的自启动

chkconfig [--level 运行级别] [独立服务名] [on|off]

[root@AmorLei ~]# chkconfig --list | grephttpd

httpd0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@AmorLei~]# chkconfig --level 2345httpd on

[root@AmorLei~]# chkconfig --list | grephttpd

httpd0:off 1:off 2:on 3:on 4:on 5:on 6:off

修改的是文件的自启动,与服务是否启动无关。

修改/etc/rc.d/rc.local文件(/etc/rc.local)

开机后将自动执行的命令

[root@AmorLei ~]# vi /etc/rc.d/rc.local

#!/bin/sh#

# This script will be executed*after*all the other init scripts.

# You can put your own initialization stuffin here if you don't

# want to dothe full Sys V style init stuff.touch /var/lock/subsys/local

使用ntsysv命令管理自启动

RedHat专有命令,使用图形界面对服务运行级别进行修改。

2.基于xinetd服务的管理

安装xinetd

[root@AmorLei ~]# yum -y installxinetd

Loaded plugins: fastestmirror

Setting up Install Process

Determining fastest mirrors

base| 3.7 kB 00:00epel| 4.7 kB 00:00epel/primary_db | 6.0 MB 00:00extras| 3.4 kB 00:00updates| 3.4 kB 00:00updates/primary_db | 4.7 MB 00:00Resolving Dependencies-->Running transaction check---> Package xinetd.x86_64 2:2.3.14-40.el6 will be installed-->Finished Dependency Resolution

Dependencies Resolved=======================================================================================================================================Package Arch Version Repository Size=======================================================================================================================================Installing:

xinetd x86_642:2.3.14-40.el6 base 122k

Transaction Summary=======================================================================================================================================Install1Package(s)

Total download size:122k

Installed size:259k

Downloading Packages:

xinetd-2.3.14-40.el6.x86_64.rpm | 122 kB 00:00Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing :2:xinetd-2.3.14-40.el6.x86_64 1/1Verifying :2:xinetd-2.3.14-40.el6.x86_64 1/1Installed:

xinetd.x86_642:2.3.14-40.el6

Complete!

[root@AmorLei ~]# yum -y install xinetd

[root@AmorLei ~]# chkconfig --list

aegis0:off 1:off 2:on 3:on 4:on 5:on 6:off

agentwatch0:off 1:off 2:on 3:on 4:on 5:on 6:off

atd0:off 1:off 2:off 3:on 4:on 5:on 6:off

auditd0: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

cloud-config 0:off 1:off 2:on 3:on 4:on 5:on 6:off

cloud-final 0:off 1:off 2:on 3:on 4:on 5:on 6:off

cloud-init 0:off 1:off 2:on 3:on 4:on 5:on 6:off

cloud-init-local 0:off 1:off 2:on 3:on 4:on 5:on 6:off

cloud-init-upgrade 0:off 1:off 2:on 3:on 4:on 5:on 6:off

crond0:off 1:off 2:on 3:on 4:on 5:on 6:off

ecs_mq-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off

eni-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off

ip6tables0:off 1:off 2:on 3:on 4:on 5:on 6:off

iptables0:off 1:off 2:on 3:on 4:on 5:on 6:off

irqbalance0:off 1:off 2:off 3:on 4:on 5:on 6:off

iscsi0:off 1:off 2:off 3:on 4:on 5:on 6:off

iscsid0: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

mdmonitor0:off 1:off 2:on 3:on 4:on 5:on 6:off

multipathd0:off 1:off 2:off 3:off 4:off 5:off 6:off

netconsole0:off 1:off 2:off 3:off 4:off 5:off 6:off

netfs0:off 1:off 2:off 3:on 4:on 5:on 6:off

network0:off 1:off 2:on 3:on 4:on 5:on 6:off

nscd0:off 1:off 2:off 3:off 4:off 5:off 6:off

ntpd0:off 1:off 2:on 3:on 4:on 5:on 6:off

ntpdate0:off 1:off 2:off 3:off 4:off 5:off 6:off

postfix0:off 1:off 2:on 3:on 4:on 5:on 6:off

rdisc0:off 1:off 2:off 3:off 4:off 5:off 6:off

restorecond0:off 1:off 2:off 3:off 4:off 5:off 6:off

rsyslog0:off 1:off 2:on 3:on 4:on 5:on 6:off

saslauthd0:off 1:off 2:off 3:off 4:off 5:off 6:off

sshd0:off 1:off 2:on 3:on 4:on 5:on 6:off

sysstat0:off 1:on 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

xinetd0:off 1:off 2:off 3:on 4:on 5:on 6:off

xinetd based services:

chargen-dgram: off

chargen-stream: off

daytime-dgram: off

daytime-stream: off

discard-dgram: off

discard-stream: offecho-dgram: offecho-stream: off

tcpmux-server: offtime-dgram: offtime-stream: off

[root@AmorLei ~]# chkconfig --list

xinetd服务的启动

[root@AmorLei ~]# vi /etc/xinetd.d/chargen-dgram daytime-dgram discard-dgram echo-dgram tcpmux-server time-stream

chargen-stream daytime-stream discard-stream echo-stream time-dgram

[root@AmorLei~]# vi /etc/xinetd.d/rsync

service rsync

{

flags= REUSE 标志为REUSE,设定TCP/IP socket 可重用

socket_type=stream 使用TCP协议数据包wait =no 允许多个连接同时连接

user=root 启动服务的用户为root

server= /usr/bin/rsync 服务的启动程序

log_on_failure+=USERID 登录失败后,记录用户的ID

disable=no 服务不启动

}

重启xinetd服务

[root@AmorLei ~]# service xinetd restart

Stopping xinetd: [FAILED]

Starting xinetd: [ OK ]

xinetd服务的自启动

[root@AmorLei ~]# chkconfig rsync on

ntsysv

3、源码包服务管理

1.源码包安装服务的启动

使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。

/usr/local/appache2/bin/apachectl start|stop

2.源码包服务的自启动

[root@AmorLei ~]# vi /etc/rc.d/rc.local

在文件中添加启动命令/usr/local/appache2/bin/apachectl start

3.让源码包服务被服务管理命令识别

让源码包的apache服务能被service命令管理启动:

ln -s /usr/local/apache2/bin/apachectl /etc/init.d

[root@AmorLei ~]# service apachectl start

httpd: apr_sockaddr_info_get() failedforAmorLei

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

让源码包的apache服务能被"chkconfig"与"ntsysv"命令管理自启动

[root@AmorLei ~]# vi /etc/init.d/apachectl

#!/bin/sh#

# chkconfig:35 86 76# description: source package apache

# chkconfig:35 86 76# 指定httpd脚本可以被chkconfig命令管理。格式是:"chkconfig:运行级别 启动顺序 关闭顺序"#description:source package apache

# 说明,内容随意

启动顺序、关闭顺序不能与"/etc/rc3.d/"中的顺序号冲突。

[root@AmorLei ~]# ls /etc/rc3.d/K10saslauthd K89rdisc S10network S25blk-availability S50ecs_mq-service S56xinetd S98agentwatch

K74nscd S01sysstat S11auditd S25netfs S51cloud-init-local S58ntpd S99local

K75ntpdate S02lvm2-monitor S12rsyslog S26udev-post S52cloud-init S80aegis

K87multipathd S07iscsid S13irqbalance S28eni-service S53cloud-config S80postfix

K87restorecond S08ip6tables S13iscsi S50aegis S54cloud-final S90crond

K89netconsole S08iptables S15mdmonitor S50cloud-init-upgrade S55sshd S95atd

[root@AmorLei ~]# ls /etc/rc3.d/

[root@AmorLei ~]# chkconfig --add apachectl

把源码包apachectl加入chkconfig命令

4、服务管理总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值