zoukankan      html  css  js  c++  java
  • Linux 中的 Service

    参考:

    一、概述

    1.1 service 和 daemon

    达成某个 service 是需要一支 daemon 在运行的。

    没有这支 daemon 就不会有 service.

    daemon分为两种:

    • stand_alone
      独立启动,自行启动不透过其他机制,daemon 启动并加载到内存后就一直占用内存与系统资源。

    最大的优点就是:因为是一直存在内存内持续的提供服务,因此对于发生客户端的要求时,stand alone 的 daemon 响应速度较快。

    常见的 stand alone daemon 有 WWW 的 daemon (httpd)、FTP 的 daemon (vsftpd) 等等。

    • super daemon
      启动方式则是藉由一个统一的 daemon 来负责唤起服务!

    它的好处是:自行启动服务不用的时候自行关闭服务,节约内存资源,telnet 就是这样的

    1.2 service 命令

    service命令,顾名思义,就是用于管理 Linux 操作系统中服务的命令。

    注意:

    1. 声明:这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、mandriva和centos中。
    2. 此命令位于/sbin目录下,用file命令查看此命令会发现它是一个脚本命令。
    3. 分析脚本可知此命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。
    4. 开启httpd服务器:service httpd start
      start可以换成restart表示重新启动,stop表示关闭,reload表示重新载入配置。
    5. 关闭mysql服务器:service mysqld stop
    6. 强烈建议大家将service命令替换为/etc/init.d/mysqld stop (因为有一些linux的版本不支持service)

    Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]

    例如:

    • 示例一 网络重启
    当修改了主机名、ip地址等信息时,经常需要把网络重启使之生效。
    [root@node34 root]# service network 
    用法:/etc/init.d/network {start|stop|restart|reload|status} 
    [root@node34 root]# service network status 
    配置设备: 
    lo eth0 
    当前的活跃设备: 
    lo eth0 
    [root@node34 root]# service network restart 
    正在关闭接口 eth0:                                        [  确定  ] 
    关闭环回接口:                                             [  确定  ] 
    设置网络参数:                                             [  确定  ] 
    弹出环回接口:                                             [  确定  ] 
    弹出界面 eth0:                                            [  确定  ]
    
    • 示例二 重启 MySQL
    [root@node34 root]# service mysql
    mysql: unrecognized service
    [root@node34 root]# service mysqld
    用法:/etc/init.d/mysqld {start|stop|status|condrestart|restart}
    [root@node34 root]# service mysqld status
    mysqld (pid 1638) 正在运行...
    [root@node34 root]# service mysqld restart
    停止 MySQL:                                               [  确定  ]
    启动 MySQL:                                               [  确定  ]
    

    https://www.bbsmax.com/A/GBJrV18BJ0/

    二、使用到的文件

    /etc/init.d/* :启动脚本放置处.我们的 CentOS 实际上放置在 /etc/rc.d/init.d/ 啦! 不过还是有配置连结档到 /etc/init.d/ 的!

    /etc/sysconfig/* :各服务的初始化环境配置文件

    /etc/* :各服务各自的配置文件

    /var/lib/* :各服务产生的数据库

    `/var/run/*`` :各服务的程序之 PID 记录处

    三、linux 中 service *** start 与直接运行 /usr/bin/*** 的区别

    在linux想要运行启动一个服务有两种方法:

    1,运行/etc/init.d/目录下的shell脚本,还可以有快捷方式,service *** start/ stop/restart /status,

    2,直接运行/usr/bin目录下的服务文件;

    第一种方法启动的程序可以通过service命令来管理,比如说查看状态 service --status-all

    查看/etc/init.d目录,发现下面都是shell脚本,脚本里面运行的程序最终还是指向了/usr/bin下面的程序,只不过在shell脚本中可能直接对程序的一些运行参数继续进行了设置;

    第二种方法,直接运行/usr/bin/****,如果运行时有配置文件的话,需要加上 --config *****,用这种方法启动程序后,不能用service命令查看状态。

    此文在我的 Github Pages 上同步发布,地址为:Linux 中的 Service

  • 相关阅读:
    移动端疫情展示
    第五周学习进度
    第四周学习进度
    结队开发-四则运算
    第三周学习进度
    全球疫情可视化第一阶段
    第二周学习进度
    面试题 02.07. 链表相交 做题小结
    剑指 Offer 35. 复杂链表的复制 做题小结
    LeetCode 452. 用最少数量的箭引爆气球 做题小结
  • 原文地址:https://www.cnblogs.com/neillee/p/7016543.html
Copyright © 2011-2022 走看看