博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
其它综合-有关service、systemctl、chkconfig、init
阅读量:6607 次
发布时间:2019-06-24

本文共 4585 字,大约阅读时间需要 15 分钟。

有关service、systemctl、chkconfig、init

CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 daemon,原来管理系统启动和管理系统服务的相关命令全部由 systemctl命令来代替。

1. 原来的 service 命令与 systemctl 命令对比

daemon命令 systemctl命令 说明
service [服务] start systemctl start [unit type] 启动服务
service [服务] stop systemctl stop [unit type] 停止服务
service [服务] restart systemctl restart [unit type] 重启服务

此外还有二个 systemctl 参数没有与 service 命令参数对应

  • status:参数来查看服务运行情况
  • reload:重新加载服务,加载更新后的配置文件(并不是所有服务都支持这个参数,比如network.service

应用举例:

#启动网络服务systemctl start network.service#停止网络服务systemctl stop network.service#重启网络服务systemctl restart network.service#查看网络服务状态systemctl status network.serivce

2. 原来的chkconfig 命令与 systemctl 命令对比

2.1 设置开机启动/不启动

daemon命令 systemctl命令 说明
chkconfig [服务] on systemctl enable [unit type] 设置服务开机启动
chkconfig [服务] off systemctl disable [unit type] 设备服务禁止开机启动

应用举例:

#停止cup电源管理服务systemctl stop cups.service#禁止cups服务开机启动systemctl disable cups.service#查看cups服务状态systemctl status cups.service#重新设置cups服务开机启动systemctl enable cups.service

2.2 查看系统上所有的服务

命令格式:

systemctl [command] [–type=TYPE] [–all]

参数详解:

command - list-units:依据 unit 列出所有启动的 unit 。加上–all 才会列出没启动的 unit ; - list-unit-files:依据/usr/lib/systemd/system/ 内的启动文件,列出启动文件列表

–type=TYPEunit type, 主要有 servicesocketarget

应用举例:

systemctl命令 说明
systemctl 列出所有的系统服务
systemctl list-units 列出所有启动unit
systemctl list-unit-files 列出所有启动文件
systemctl list-units –type=service –all 列出所有service类型的unit
systemctl list-units –type=service –all grep cpu 列出 cpu电源管理机制的服务
systemctl list-units –type=target –all 列出所有target

3. systemctl特殊的用法

systemctl命令 说明
systemctl is-active [unit type] 查看服务是否运行
systemctl is-enable [unit type] 查看服务是否设置为开机启动
systemctl mask [unit type] 注销指定服务
systemctl unmask [unit type] 取消注销指定服务

应用举例:

#查看网络服务是否启动systemctl is-active network.service#检查网络服务是否设置为开机启动systemctl is-enable network.service#停止cups服务systemctl stop cups.service#注销cups服务systemctl mask cups.service#查看cups服务状态systemctl status cups.service#取消注销cups服务systemctl unmask cups.service

4. init 命令与systemctl命令对比

init命令 systemctl命令 说明
init 0 systemctl poweroff 系统关机
init 6 systemctl reboot 重新启动

与开关机相关的其他命令:

systemctl命令 说明
systemctl suspend 进入睡眠模式
systemctl hibernate 进入休眠模式
systemctl rescue 强制进入救援模式
systemctl emergency 强制进入紧急救援模式

5. 设置系统运行级别

5.1 运行级别对应表

init级别 systemctl target
0 poweroff.target
1 rescue.target
2 multi-user.target
3 multi-user.target
4 multi-user.target
5 graphical.target
6 reboot.target

此外还是一个 getty.target 用来设置 tty 的数量。

5.2 设置运行级别

命令格式:

systemctl [command] [unit.target]

参数详解:

command:
  • get-default :取得当前的 target
  • set-default :设置指定的 target 为默认的运行级别
  • isolate :切换到指定的运行级别
  • unit.target :为5.1表中列出的运行级别
systemctl命令 说明
systemctl get-default 获得当前的运行级别
systemctl set-default multi-user.target 设置默认的运行级别为mulit-user
systemctl isolate multi-user.target 在不重启的情况下,切换到运行级别mulit-user下
systemctl isolate graphical.target 在不重启的情况下,切换到图形界面下

6. 使用systemctl分析各服务之前的依赖关系

命令格式:

systemctl list-dependencies [unit] [–reverse]

–reverse是用来检查寻哪个 unit 使用了这个 unit

应用举例:

#获得当前运行级别的target[root@oldboyedu ~]# systemctl get-defaultmulti-user.target#查看当前运行级别target(mult-user)启动了哪些服务[root@oldboyedu ~]# systemctl list-dependenciesdefault.target├─abrt-ccpp.service├─abrt-oops.service├─vsftpd.service├─basic.target│ ├─alsa-restore.service│ ├─alsa-state.service.....(中间省略).....│ ├─sockets.target│ │ ├─avahi-daemon.socket│ │ ├─dbus.socket.....(中间省略).....│ ├─sysinit.target│ │ ├─dev-hugepages.mount│ │ ├─dev-mqueue.mount.....(中间省略).....│ └─timers.target│   └─systemd-tmpfiles-clean.timer├─getty.target│ └─getty@tty1.service└─remote-fs.target
#查看哪些target引用了当前运行级别的target[root@oldboyedu ~]# systemctl list-dependencies --reversedefault.target└─graphical.target

7. 关闭网络服务

在使用 systemctl 关闭网络服务时有一些特殊 需要同时关闭 unit.servceunit.socket

使用 systemctl 查看开启的 sshd 服务

[root@oldboyedu ~]#  systemctl list-units --all | grep sshdsshd-keygen.service loaded inactive dead        OpenSSH Server Key Generationsshd.service        loaded active   running     OpenSSH server daemonsshd.socket         loaded inactive dead        OpenSSH Server Socket

可以看到系统同时开启了 sshd.servicesshd.socket, 如果只闭关了 sshd.service 那么sshd.socket 还在监听网络,在网络上有要求连接 sshd 时就会启动sshd.service 。因此如果想完全关闭 sshd 服务的话,需要同时停用 sshd.servicesshd.socket

systemctl stop sshd.servicesystemctl stop sshd.socketsystemctl disable sshd.service sshd.socket

由于 centos 7.x 默认没有安装 net-tools ,因此无法使用 netstat 来查看主机开发的商品。需要通过 yum 安装来获得该工具包:

yum -y install net-tools

查看是否关闭 22 端口

netstat -lnp |grep sshd

8. 关闭防火墙firewall

Centos 7.x 中取消了 iptables , 用 firewall 取而代之。要关闭防火墙并禁止开机启动服务使用下面的命令:

systemctl stop firewalld.servicesystemctl disable firewalld.service

转载于:https://www.cnblogs.com/wjcLinux/p/10558484.html

你可能感兴趣的文章
33.8. slb configuration
查看>>
ext的window如何隐藏水平滚动条
查看>>
71.8. Run level shell script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4)
查看>>
SAP QM Transfer of Inspection Stock
查看>>
全新视觉| 数治省市:SAP大数据构想一切可能
查看>>
ORACLE expdp备份与ORA-31693、ORA-02354、ORA-02149
查看>>
SAP S/4 HANA新变化-信用管理
查看>>
doc-remote-debugging.html
查看>>
DBMS_STATS.GATHER_TABLE_STATS
查看>>
Java-单机版的书店管理系统(练习设计模块和思想_系列 五 )
查看>>
嵌入式 详解udev
查看>>
《C程序员:从校园到职场》出版预告(2):从“百花齐放”到“一枝独秀”
查看>>
Network Monitor 查询命令和MySQL命令
查看>>
好“戏”刚刚开幕 云计算逐步被认可
查看>>
云安全:这也是需要花大钱去建设的部分
查看>>
以全局产业观领航智慧城市建设
查看>>
5G网络不止能1秒下一部电影,它还能够…
查看>>
中国电信集采终端6700万部 金额达1070亿元
查看>>
2016年的十个数据中心故事
查看>>
《Java并发编程的艺术》一一3.3 顺序一致性
查看>>