系统软件服务类设置命令

2022-09-28 20:13:30 浏览数 (1)

[TOC]

0x00 服务管理

1.Linux服务管理 独立的服务:就是运行在内存里的服务,任何的客户端要访问这个服务

  • 可以直接响应,速度快,缺点是占用内存.

xinetd服务:是超级守护进程,它管理的后台程序,客户端要访问后台服务需要经过它

  • xinetd占用内存,其他服务都不占内存,速度慢,xinetd的服务现在用得越来越少了.

WeiyiGeek.rpm与源码包安装服务

各种服务的目录以及使用

代码语言:javascript复制
#1.独立服务的启动,系统启动都时候都会把这个文件里的内容执行一遍
/etc/rc.d/    #自启动
/etc/init.d/  #启动
#注意Centos7需要自己编写脚本放入该目录中:进行启动
/etc/init.d/独立服务名 start|stop|status|restart|

#示例
/etc/rc.d/rc.local #修改文件
/etc/init.d/net start #比如加入进行自启动


#2.源码包服务管理
vi /etc/rc.d/rc.local #源码包的自启动
#让源码包的服务能过被service命令管理启动,需要将源码包中bin目录的命令建立软连接到 /etc/init.d/下
#示例:
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache  
ln -s /usr/local/apache2/bin/apachectl /usr/bin/apachectl    #在centos7 

#让源码包服务被chkconfig,ntsysv命令管理自启动
vi /etc/init.d/apache
#加入:chkconfig:35 86 76  并且加入到chkconfig
# 35 启动级别
# 86 启动顺序
# 76 关闭顺序
chkconfig --add apachectl #服务接受chkconfig管理就能被ntsysv管理.


#3.补充方法(主要是源码安装)
#在redhat7及以上,推荐采用systemctl进行管理服务
/usr/lib/systemd/system/  #systemctl管理的脚本
/etc/systemd/system  #(Ubuntu)

#示例:nginx源码安装,首先是确定编译后的软件服务不存在下面的目录
/etc/systemd/system/multi-user.target.wants/
#1)创建配置文件 
vim /usr/lib/systemd/system/nginx.service
写入服务管理内容:
[Unit]
Description=nginx - high performance web server 
Documentation=http://nginx.org/en/docs/ 
After=network-online.target remote-fs.target nss-lookup.target 
Wants=network-online.target

#包含启动、重启和停止
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

#2)建立完成后就能通过systemctl命令进行管理了
systemctl start nginx.server

2)运行等级 切换系统运行等级:0表示关机,6表示重启,1表示单用户模式,2345表示多用户模式

WeiyiGeek.运行等级

service 命令

描述:Cenots6中主要的服务管理工具,用于服务启动与停止状态的查看,注意此命令不是linux通用命令而是redhat自己开发的;

代码语言:javascript复制
service 独立服务名  start|stop|status|restart   #推荐使用systemctl

基础使用示例:

代码语言:javascript复制
#比如复制 php-fpm 启动文件到init.d目录中
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod o x /etc/init.d/php-fpm

#传统的启动方式
/etc/init.d/php-fpm start
#采用services管理方式
service php-fpm start

updata-rc.d 命令

描述:命令添加开机执行脚本还能用于设置服务自启动的运行等级和顺序,多在debian和Ubuntu中使用; 同样需要在该路径中建立软连接/etc/init.d/ssh采用进行管理;

代码语言:javascript复制
#用法
update-rc.d [-n] [-f] name remove    #用于移除脚本
update-rc.d [-n] name default [NN | SS KK]
update-rc.d [basename] start|stop [order] [runlevels]

* NN表示执行序号(0-99)
* SS表示启动时的执行序号
* KK表示关机时的执行序号,SS、KK主要用于在脚本直接的执行顺序上有依赖关系的情况下。

-n:不做任何事情,只显示将要做的。(预览、做测试)
-f:强制移除符号连接,即使 /etc/init.d/script-name 仍然存在。

实际案例:

代码语言:javascript复制
#示例1.update-rc.d 进行自启动并制定运行级别
update-rc.d ssh default  # 下次启动重新开启


#示例2.设置启动顺序
如果执行脚本B需要先执行脚本A,如下设置(A的启动顺序比B的小,结束顺序比B的大):
update-rc.d A defaults 80 20  #其中的99表示启动顺序,取值范围是0-99。序号越大的越晚执行。
update-rc.d B defaults 90 10


#示例3.移除启动的脚本
update-rc.d startBlog remove
update-rc.d -f startBlog remove  #强制


#示例4.高级示例
#解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行ushare;在 0 1 6这3个运行级别中,第20个关闭apachectl。
update-rc.d ssh start 20 2 3 4 5 .stop 20 0 1 6  #运行级别 0 — 6
#效果等于下面方法:
update-rc.d httpd defaults

chkconfig 命令

描述:启动自启动命令(老版本还用),可以按照启动级别来自启;注意需要将脚本放入/etc/init.d/shell脚本名称才能进行管理;

代码语言:javascript复制
chkconfig [--level <级别>] [--type <类型>] <服务名称> <on启用|off停止自启|reset重新设置|resetpriorities重置优先级>

实际案例:

代码语言:javascript复制
#示例0.添加服务到chkconfig管理
chkconfig -add nginx


#示例1.查看服务启动
#--level 通常级别2345一块设定  #这条命令只是表示下次开机启用
chkconfig --level 2345 httpd on     # Centos7.0 ->全部集中到systemctl中
chkconfig –-level 35 crond on

#示例2.查看服务自启动状态
#可以看到所有的RPM包安装服务
chkconfig --list   #如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'   #Centos 7 有改变
#欲查看对特定 target 启用的服务请执行 ' systemctl list-dependencies [target] '  (上面)
# netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
# network         0:关    1:关    2:开    3:开    4:开    5:开    6:关
# 基于 xinetd 的服务:
#         chargen-dgram:  关
#         chargen-stream: 关


#示例3.优先级设置
格式:chkconfig --level 2345  10[开机优先级] 90[关机优先级]

xinetd 命令

描述:xinetd服务是超级守护进程是Rsync、nfs依赖.

  • xinetf配置文件:/etc/xinetd.conf
  • 基于xinetd服务的启动脚本:/etc/xinetd.d/
代码语言:javascript复制
# 1.安装xinetd
yum -y install xinetd   
service xinetd restart
service rsysv on

#2.企业xinetd
vi /etc/xinetd.d/rsync   #修改后重启
set:disable = no

注意:xinetd服务不能加级别来自启动,xinetd自启动就启动了.

ntsysv 命令

描述:这个是redhat专用其他linux没有,Redhat与FC系统提供的图形管理界面设置哪些服务应该自动启动;

代码语言:javascript复制
$ntsysv     
#会启动一个窗口 加*号 开机自启 去掉* 取消,

WeiyiGeek.ntsysv

setup 命令

描述:提供debian的图像化管理认证和系统服务配置,值得注意的是setup也是调用ntsysv和authconfig-tui工具进行管理得;

代码语言:javascript复制
[root@localhost ~]# setup

WeiyiGeek.setup

0x02 软件配置

dpkg-reconfigure 命令

描述: 在Debian系或者Ubuntu系需要重新配制一个已经安装的软件,当用户需要再次对软件包配置的时候可以使用dpkg-reconfigure来对指定的软件包进行配置。

语法参数:

代码语言:javascript复制
# /usr/bin/debconf-set-selections
Usage: dpkg-reconfigure [options] packages
# dpkg-reconfigure [选项] 软件包
  # -u,  --unseen-only            Show only not yet seen questions. # 仅显示未提过的问题
  #      --default-priority       Use default priority instead of low. #  使用默认优先级,而非“低”级。
  #      --force                  Force reconfiguration of broken packages.  #   强迫重配置受损软件包。
  #      --no-reload              Do not reload templates. (Use with caution.) # 不要轻易的重装模板(使用时请慎重考虑)。
  # -f,  --frontend               Specify debconf frontend to use. # 指定 debconf 前端界面。
  # -p,  --priority               Specify minimum priority question to show. # 指定要显示的问题的最优先级。
  #      --terse                  Enable terse mode.  # 开启简要模式。

使用实例:

代码语言:javascript复制
# (1) 配置系统语言
sudo dpkg-reconfigure locales

0x03 补充自带服务

参考:Linux服务列表

0 人点赞