service与systemctl命令比较
本文将比较 linux 的 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。
从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 daemon,原来管理系统启动和管理系统服务的相关命令全部由 systemctl命 令来代替。
service 命令
service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
语法: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
option 的值
-h:显示 service 的帮助信息
-status:显示所服务的状态
--status-all:查看所有服务的状态
service_name:服务名,即 /etc/init.d 目录下的脚本文件名
command:系统服务脚本支持的控制命令,如:start、stop 和 restart
--full-restart:重启所有服务
实例:查看 service 的帮助信息
|
1
2
3
|
[root@localhost ~]# service -hUsage: service < option > | --status-all | [ service_name [ command | --full-restart ] ][root@localhost ~]# |
实例2:查看所有的服务状态
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@centos-x64 ~]# service --status-allauditd (pid 1299) is running...Stoppedcgred is stoppedcrond (pid 1481) is running...Table: filterChain INPUT (policy ACCEPT)num target prot opt source destination1 ACCEPT all ::/0 ::/0 state RELATED,ESTABLISHED2 ACCEPT icmpv6 ::/0 ::/03 ACCEPT all ::/0 ::/04 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:225 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:806 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibitedChain FORWARD (policy ACCEPT)num target prot opt source destination1 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibited |
实例3: 使用 service 启动/重启/停止网络服务
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@centos-x64 ~]# service network restartShutting down interface eth0: [ OK ]Shutting down loopback interface: [ OK ]Bringing up loopback interface: [ OK ]Bringing up interface eth0: [ OK ][root@centos-x64 ~]# service network startBringing up loopback interface: [ OK ]Bringing up interface eth0: [ OK ][root@centos-x64 ~]# service network stopBringing dwon interface eth0: [ OK ]Bringing down loopback interface: [ OK ][root@centos-x64 ~]# service network statusConfigured devices:lo eth0Currently active devices:lo eth0 |
systemctl 命令
历史上,Linux 的启动一直采用init进程。下面的命令用来启动服务。
|
1
2
3
|
$ sudo /etc/init.d/apache2 start# 或者$ service apache2 start |
这种方法有两个缺点:
一是启动时间长。init 进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
二是启动脚本复杂。init 进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长
Systemd 就是为了解决上面问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。根据 Linux 惯例,字母 d 是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。使用了 Systemd,就不需要再用 init 了。Systemd 取代了 initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
|
1
2
3
4
|
[root@localhost ~]# systemctl --versionsystemd 219+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN[root@localhost ~]# |
Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反 “keep simple, keep stupid” 的Unix 哲学。
实例1:systemctl常用命令
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 重启系统$ sudo systemctl reboot# 关闭系统,切断电源$ sudo systemctl poweroff# CPU停止工作$ sudo systemctl halt# 暂停系统$ sudo systemctl suspend# 让系统进入冬眠状态$ sudo systemctl hibernate# 让系统进入交互式休眠状态$ sudo systemctl hybrid-sleep# 启动进入救援状态(单用户状态)$ sudo systemctl rescue |
实例2:检查systemd和systemctl的二进制文件和库的安装位置。
|
1
2
3
4
|
# whereis systemd systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz# whereis systemctlsystemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz |
实例3:检查systemd是否正在运行
|
1
2
3
4
5
6
|
# ps -eaf | grep [s]ystemdroot 1 0 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 23root 444 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-journaldroot 469 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-udevdroot 555 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-loginddbus 556 1 0 16:27 ? 00:00:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation |
实例4:列出所有服务(包括启用和禁用)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# systemctl list-unit-files --type=serviceUNIT FILE STATEarp-ethers.service disabledauditd.service enabledautovt@.service disabledblk-availability.service disabledbrandbot.service staticcollectd.service disabledconsole-getty.service disabledconsole-shell.service disabledcpupower.service disabledcrond.service enableddbus-org.fedoraproject.FirewallD1.service enabled.... |
service 与 systemctl 命令对比
| daemon命令 | systemctl命令 | 说明 |
| service [服务] start | systemctl start [unit type] | 启动服务 |
| service [服务] stop | systemctl stop [unit type] | 停止服务 |
| service [服务] restart | systemctl restart [unit type] | 重启服务 |
service与systemctl命令比较的更多相关文章
- Centos7下的systemctl命令与service和chkconfig
博主使用的操作系统是最新的CentOS 7,所以可能和网上一些老的博文有一定出入,那是因为版本更新的原因. 这里写图片描述1 service service命令用于对系统服务进行管理,比如启动(sta ...
- 更新换代----systemctl命令取代chkconfig和service
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...
- Systemctl和service、chkconfig命令的关系
systemctl命令:是一个systemd工具,主要负责控制systemd系统和服务管理器. service命令:可以启动.停止.重新启动和关闭系统服务,还可以显示所有系统服务的当前状态. ch ...
- Centos7中systemctl命令详解
Linux Systemctl是一个系统管理守护进程.工具和库的集合,用于取代System V.service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器.通过Syst ...
- 【搬运】systemctl 命令完全指南
Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器. Systemd是一个系统管理守护进程.工具和库的集合,用于取代System V初始进程.Systemd的功能是 ...
- systemctl命令用法详解
systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...
- centos7 systemctl命令
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 实例: 启动nfs服务:systemctl start nfs-server.s ...
- systemctl命令
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...
- centos7中systemctl命令使用方法和心得体会
使用linux的同学对service和chkconfig两个命令都不陌生,其重要性不言而喻,那么怎么会突然冒出个systemctl命令呢?其实,为了简化操作,systemctl命令将service和c ...
随机推荐
- 《剑指offer》面试题57 - II. 和为s的连续正数序列
问题描述 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:target ...
- 如何使用Github搭建自己的博客
1.前期准备 sudo apt-get install npm sudo npm install hexo -g 首先使用如下命令创建项目,name是你要创建的博客的名字: hexo init {na ...
- Git在实际生产中的使用
文章目录 Git在实际生产中的使用 简单情况下的代码提交 Fetch and Pull 仅获取某分支的代码 远程仓库已经合并了别人的代码 冲突产生原因与解决办法 不恰当的多个Commit合并为一个 G ...
- gin框架中HTTP请求和参数的解析
1. 方法一: 通用的处理方法---Handle package main import ( "fmt" "github.com/gin-gonic/gin" ...
- 【重构前端知识体系之HTML】HTML5给网页音频带来的变化
[重构前端知识体系之HTML]HTML5给网页音频带来的变化 引言 音乐播放,相信大家都很熟悉,但是早在之前的音乐播放之前,你的浏览器会问你,是否下载flash插件.然而现在,估计一些年轻的开发者都不 ...
- Java语法专题1: 类的构造顺序
合集目录 Java语法专题1: 类的构造顺序 问题 下面的第二个问题来源于Oracle的笔试题, 非常经典的一个问题, 我从07年开始用了十几年. 看似简单, 做对的比例不到2/10. 描述一下多级继 ...
- l线程池抓取lianjia
1. 线程池 的应用 from multiprocessing.dummy import Pool import requests from lxml import etree url="h ...
- Tomcat临时目录及java.io.tmpdir对应的目录
最近客户现场的技术支持接连反馈了一个问题:导入数据的时候,上传的excel会在服务器上生成一个临时文件,而这个临时文件都在 tomcat 的安装目录下,如果上传次数比较多的话,就会导致tomcat安 ...
- webbrowser 强制 ie11
假设winform程序的名称是TestWebBrowser.exe. 1.在开始菜单内输入"regedit.exe",进入注册表编辑器 2.找到注册表项:HKEY_LOCAL_MA ...
- Python安装pip时, 报错:zipimport.ZipImportError: can't decompress data; zlib not available
解决办法: 1.安装依赖zlib.zlib-devel 2.重新编译安装Python 具体步骤: 1 到python安装目录下,运行./configure 2 编辑Modules/Setup文件 vi ...