Linux RPM包服务 与 源码包服务 相关配置管理

前言

Linux 软件安装方式的不同,也就意味着 安装目录 配置不同,那么就会出现不同的 管理方式,来管理服务的 启动和自启动

学习Linux 服务管理 无非就是 管理各种服务,了解服务关系相关知识,和配置服务的 自动启动等等,对于日常管理服务器人员,还是很有必要了解一下的

首先说RPM包安装 的服务

Linux 中服务分为两种,一种为RPM 包 服务,RPM包安装类型:又分为独立的服务 和基于xinetd 的服务 (比如说通过rpm安装的mysql,和jenkins ,默认都会自己启动,因为rpm安装方式,会将服务,以及相关配置都放在默认的路径下,默认会将服务进行配置并且开机自启动,一种约定俗成的习惯,RPM 安装方式,都会放到这些默认的目录,那么到底有那些默认的目录呢?)

RPM 包安装默认配置

/etc/rc.d/init.d/         服务启动脚本位置 (独立的服务)
/etc/sysconfig/           初始化环境配置文件路径
/etc/                     配置文件位置
/var/lib/                 服务产生的数据放在这里
/var/log/                 日志

/etc/xinetd.d/            服务启动脚本位置 (基于xinetd 的服务)
/etc/xinetd.conf/         xinetd 的服务配置

查看RPM 包安装的服务,可以通过chkconfig --list来查看, 也可以直接查看这个目录/etc/rc.d/init.d 来进行查看RPM包安装的服务,service xxxx start 就是搜索的这个 目录,来进行启动的,service xxxx start 是不能够启动 源码包安装的服务(除非说你将源码包安装的启动脚本也放到这个目录下,或者软连接),只能启动RPM包安装的服务

[root@VM-0-6-centos ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

jenkins         0:off   1:off   2:off   3:on    4:off   5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rabbitmq-server 0:off   1:off   2:on    3:on    4:on    5:on    6:off

独立服务的启动方式
通过上述目录,既然知道了服务的启动脚本,那么是不是可以通过/etc/rc.d/init.d/ ,绝对路径进行启动服务呢?答案是可以的
经过测试通过路径是可以启动的,service xxxx start就是在这个目录进行搜索xxx名字,只要找到就启动,所以我们也可以直接在目录进行{start|stop|status|try-restart|restart|force-reload|reload|probe}都是可以的

service jenkins start 等同于 /etc/rc.d/init.d/jenkins start

查看所有以rpm包安装的服务的状态

service --status--all

service 命令在不同的linux 系统中会有差异(有的服务器可能不能用,不过我还没遇到不能用的。。。。,如果遇到可以使用绝对路径的方式启动)

[root@VM-0-6-centos init.d]# ./jenkins
Usage: ./jenkins {start|stop|status|try-restart|restart|force-reload|reload|probe}
[root@VM-0-6-centos init.d]# ./jenkins start
Starting Jenkins                                           [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins stop
Shutting down Jenkins                                      [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins start
Starting Jenkins                                           [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins start
Starting Jenkins                                           [  OK  ]
[root@VM-0-6-centos init.d]# service jenkins start
Starting jenkins (via systemctl):                          [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins status
jenkins (pid  13408) is running...
[root@VM-0-6-centos init.d]# ./jenkins restart
Shutting down Jenkins                                      [  OK  ]
Starting Jenkins                                           [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins stop
Shutting down Jenkins                                      [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins start
Starting Jenkins                                           [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins stop
Shutting down Jenkins                                      [  OK  ]
[root@VM-0-6-centos init.d]# ./jenkins start
Starting Jenkins                                           [  OK  ]

独立的服务。开机自启
修改/etc/rc.d/rc.local 文件,此文件在你服务重启,输入用户密码登路之前,都会执行一次这个文件,(那么只需要将要启动的服务脚本路径写在这里即可)将你要启动的服务 绝对路径放进去即可,待验证。。。。

例如写入jenkins 启动命令 :/etc/rc.d/init.d/jenkins atart

第二种方法(发现我的服务器 自启动 是使用的这种方式

chkconfig --level 2345  服务名   off  关闭这个服务开机自启
chkconfig --level 2345  服务名   on  开启此服务开机自启

简化写法,默认级别就是2345.可以省略不写

chkconfig  服务名   off  关闭这个服务开机自启
chkconfig  服务名   on    开启此服务开机自启

下图可以看到,服务是自启动的,on

在这里插入图片描述

源码包安装的服务管理

一种为源码安装包服务(安装路径自己指定) 这种安装完成就需要每次手工进入对应的目录来启动

那么源码包安装如何配置开机自启动呢?

其中有一种方式和PRM包一样修改 /etc/rc.d/rc.local 这个文件,重启之后,登路之前会执行此文件中的内容,那么也就达到了开机自启(那假如重启之后,没有登路,会怎么样呢?服务还会启动吗???值得思考)

例如  我们把解压安装的nginx配置进去: /usr/local/nginx/sbin/nginx

如何让service xxx start 命令识别 源码包安装的服务启动呢?

使用软连接的方式,将nginx 的执行文件,连接到 /etc/rc.d/init.d/ 下(把源码包启动命令连接到rpm安装启动脚本的目录下),让service 可以找到,就可以启动了

例如: ln -s  /usr/local/nginx/sbin/nginx   /etc/rc.d/init.d/nginx
//这样就可以使用  service  nginx  start|stop 启动
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值