linux 下的系统服务管理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qi_700/article/details/54427992

linux 下的系统服务管理

 

1 守护进程的概念

  Linux 为了向外部提供稳定的服务,所以需要服务的进程能够安全持久的运行。由此设计出了守护进程。关于守护进程的特点我们需要进行如下的讲解。

2 redhat 7 下管理服务

(1). system V init

redhat 7 之前的版本,我们针对服务的管理是采用 system V init 方案,该方案依靠划分不同的运行级别,启动不同的服务集合,服务依靠脚本控制,并且是顺序执行的。

它有着如下的优缺点:

1) 优点:原理简单,易于理解。依靠 shell 脚本控制,别写服务脚本门槛比较低。2) 缺点:服务顺序启动,启动过程比较慢。不能做到动态的启动服务。

2. systemd

System V init 启动在以前看来并不是影响服务运行的关键,以前 linux 操作系统的服务常年也难得重启一次,但是随着移动互联网的兴起。许多安卓设备也是基于 linux

内核的,移动设备的启动比较频繁,如果每次启动服务都是顺序启动,客户是难以忍受的。所以 systemd 采用的是并行的方案。要想采用并行的方案,一定要解决好服务之间的依赖性。systemd 采用的是一种类似缓冲池的方案。加入服务 1 需要服务 2 提供的信息,加入服务 2 没有准备好。服务 1预先留下这个需求继续向下执行。直到服务 2 准备好后和服务 1 进行通信。这样就实现了并行的服务启动,大大加快了服务的开启。systemd 机制下对于服务的管理使用 systemctl 命令。下面对 systemctl 的使用方法进行介绍。

3.systemctl 命令

(1) 查看服务是否开机自启动,并且可以设置开机是否启动和关闭:

(2) 查看服务当前状态,打开、关闭、重启和重新导入服务。

[root@localhost Desktop]# systemctl status network

network.service - LSB: Bring up/down networking

   Loaded: loaded (/etc/rc.d/init.d/network)

   Active: failed (Result: exit-code) since Tue 2017-01-10 10:43:37 CST; 11min ago

  Process: 1169 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)

Hint: Some lines were ellipsized, use -l to show in full.

[root@localhost Desktop]# systemctl start network

[root@localhost Desktop]# systemctl stop network

[root@localhost Desktop]# systemctl restart network

(3) 掩饰服务的存在,可以使用 mask 参数,这样的状态下,已经开启的服务可以被

    关闭,但是没有开启的服务就无法开启。

展开阅读全文

没有更多推荐了,返回首页