关于linux服务的管理方法

来源:互联网 发布:五五开拉黑淘宝权 编辑:程序博客网 时间:2024/05/21 06:29

linux作为服务器,最重要的一点就是服务器的优化,优化的过程就是让只需要的服务启动,不需要的服务关闭,这样就能尽可能的减少了服务器系统负载。就像windows下的服务管理一样,在运行中输入service.msc, 就会打开一个本地服务的管理页面,如下
这里写图片描述
我们可以看到,每一个服务都有自己的属性,例如 :描述、 状态、启动类型、登录地址;在linux中,同样描述服务的也需要这些属性。
首先在这里先区分一下两个概念:启动和自启动

启动:系统当前本地服务并没有开启,当执行这条命令时才开启。自启动:系统开机时自动启动。

了解了这两个概念,接下来,就围绕这两个作区分来对linux服务管理进行分类详解:
在linux中,一个服务的运行级别分为6级,其中0级为立即关机,6级为自动重启,其实0级(init 0 )就相当于halt命令,6级(init 6)相当于 reboot命令,3级为纯字符界面(也就是命令行),5级为界面模式。
这里写图片描述
这里写图片描述

运行级别的原理:1。在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)2。在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别3。rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。4。系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件     对于以K开头的文件,系统将终止对应的服务     对于以S开头的文件,系统将启动对应的服务5。查看运行级别用:runlevel6。进入其它运行级别用:init N7。另外init0为关机,init 6为重启系统

查看已经安装的服务:

chkconfig --list        查看所有的服务启动级别以及状态chkconfig  --list httpdchkconfig –list |grep httpd

这里写图片描述

这里的级别只是系统开机启动时候,根据系统所指定的级别来运行了。

源码包:
/usr/local 下看到的服务包

ps aux      查看系统运行的进程
netstat -tulnp(看启动)根据端口看开启了哪些服务    t tcp    l listen    u udp    n 端口号而不是服务名    p pid

linux中标准的启动只有一种,就是根据绝对路径去寻找相应的服务启动,rpm包启动路径存放在 /etc/init.d/目录下,在该目录下,能够看到所有的rpm包启动名称(以下只是举例):
这里写图片描述

使用 vi /etc/init.d/httpd打开文件,我们看到一些 关于 start stop restart...的一些函数 ,当使用/etc/init.d/httpd start 就会将这些命令当做函数变量传递进来,执行方法。

echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}"

这里写图片描述

以上,所有在 /etc/init.d/目录下可看到的服务,均可使用 service [服务名] start | stop | restart 执行服务。

说明:使用 /etc/init.d/httpd status看到的状态
chkconfig --list httpd 看到的启动级别不一样

[root@bogon init.d]# /etc/init.d/httpd statushttpd 已停
[root@bogon init.d]# chkconfig --list httpdhttpd  0:关闭 1:关闭 2:关闭 3:关闭  4:关闭 5:关闭 6:关闭chkconfig命令看到的 是下次系统启动时,服务将要执行的级别。

接下来,开机自启动:
开机自启动,有两种方式:一种是使用chkconfig 开启服务级别

[root@bogon ~]# chkconfig --level 2345 httpd on[root@bogon ~]# chkconfig --list | grep httpdhttpd    0:关闭   1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭这样,linux下次启动时,httpd服务就会跟随启动。即使这样,当前系统下,httpd服务也是没有开启的。不信,请看:[root@bogon ~]# service httpd statushttpd 已停

当然,还有第二种开机自启服务的方法,通过修改配置文件,当我们打开/etc/rc.d/rc.local文件时,我们看到:
这里写图片描述

在这个文件中的命令,在系统启动的时候,首先会读取并执行(以前,这个文件是十分重要的,通过查看注释可以发现),自启动的方式,只需在文件中添加可执行的命令 ,比如/etc/init.d/httpd start ,当系统启动时,就会启动该服务。
通过 service httpd status 可以看到:

[root@bogon ~]# service httpd statushttpd (pid  2327) 正在运行...

但并不是说,chkconfig 查看的启动级别就是启用,可能还是关闭的,比如,我当前的,如下:

[root@bogon ~]# chkconfig --list  | grep httpd httpd   0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

但是以及可以访问80端口:
这里写图片描述

如果访问不了,请关闭linux防火墙,或者查看
linux下安装tomcat以及开放端口8080

还有一个命令 ntsysv,ntsysv命令执行后会进入一个图像化的界面,其本质和 chkconfig --level 2345 on/off 上一样的。
这里写图片描述

源码包的自启动

源码包的自启动
比较简单的,是通过 追加 /etc/rc.d/rc.local 文件,中写入 手动启动的命令
这里写图片描述

第二种,是通过ln -s 软链接的方式,将源码包服务链接到 /etc/init.d/目录下,这样,就可以使用 redhat特有的命令(也就是service [服务] start|stop)去执行服务:
这里写图片描述

但是,让源码包能被chkconfig命令ntsysv命令管理自启动稍微复杂,需要实现如图的步骤。
这里写图片描述
这里写图片描述



这里写图片描述


linux基本命令:点这里

linux最小服务以及每个服务的作用:点这里

0 0
原创粉丝点击