Linux:服务相关指令systemctl和service
学习自:systemctl和service - 法螺話 - 博客园
service和systemctl的区别_systemctl和service区别_Xu-小安安的博客-CSDN博客
service和systemctl_systemctl和service区别_如我般骄傲的博客-CSDN博客
systemctl与service的异同
相同点
- 二者都是用于管理Linux系统服务的命令,都能够实现Linux系统服务的启停。
不同点
- systemctl是systemd的命令,service是SysVinit的命令。systemd是Linux常用的进程管理器,而SysVinit是传统的进程管理器。
- 实现过程,service实际是去/etc/init.d目录下,去执行相关程序/脚本文件,来管理服务的启停;systemctl则是去/lib/systemd/system目录下,创建和指令同名的service文件,
- systemctl支持更多操作,例如状态、启停、重启、重载、开机自启等;service只能启停、重启服务。
- systemctl可以管理systemd和SysVinit启动的服务,而service只能管理SysVinit启动的服务。
- 一些较老的服务只能通过service进行启停,而systemctl命令并不支持;
- 语法不同:
systemctl 指令 服务
service 服务 指令systemctl restart network service network restart
systemctl
1、简介
用于管理进程:
- CentOS 5:SysV init;
- CentOS 6:Upstart;
- CentOS 7:Systemd;
CentOS7采用systemd管理守护进程,服务独立地运行于内存中,服务响应速度快,但占用更多内存。
独立服务的服务启动脚本存放于目录/usr/lib/systemd/system中。
Systemd的新特性:
- 系统引导时实现服务的并行启动;
- 按需激活进程;
- 系统实现快照;
- 基于依赖关系定义服务的控制逻辑;
systemctl可用于内省和控制systemd系统和服务管理器的状态。CentOS7.x系统环境下我们使用该命令启停服务,实际上该命令除了独立服务还有很多其他用途。
2、用法
下文中的unit,是指被管理的daemon(守护进程)
用法:systemctl 选项 [服务]
选项
选项用法:systemctl start unit |
说明 |
start | 启动unit |
stop | 停止 |
restart | 重启,先stop再start |
reload | 重载配置文件,不stop服务 |
enable | 开机自启动 |
disbale | 取消开机自启动 |
status | unit的状态 |
is-active | 是否活跃/运行 |
is-enabled | 是否开机启动 |
kill | 杀死服务 |
show | 列出unit的配置 |
daemon-reload | 刷新配置并重载daemon以使systemctl识别 |
mask | 注销unit,之后再也无法启动unit |
unmask | 取消对unit的注销 |
list-units |
列出所有目前启动的unit。 加参数-all同时列出没启动的。 |
list-unit-files |
列出所有已安装的unit以及它们的开机启动状态 (enabled,disabled,static,mask) |
--type=TYPE | unit type,包括service、socket、target |
get-default | 当前target |
set-default | 设定后面的target为默认的操作模式 |
isolate | 切换到后面的模式 |
snapshot | 系统快照 |
delete | 删除快照 |
show-environment | 展示环境变量 |
poweroff | 关闭系统 |
reboot | 重启机器 |
suspend | 系统睡眠 |
get-default | 查看系统启动模式 |
例子
1)帮助:systemctl --help
2)启动:systemctl start unit
3)状态:systemctl status unit
4)停止:systemctl stop unit
5)活跃检查:systemctl is-active unit
6)重新加载配置:systemctl reload unit
7)重启服务(先stop,然后start):systemctl restart unit
8)列出所有可用unit:systemctl list-unit-files
9)列出所有已加载unit:systemctl list-units [--type=TYPE]
10查看所有systemctl管理的所有服务(即service文件):--type=service
11)注销:systemctl mask unit
服务注销后,就无法通过systemctl进行启停管理了
[root@s153 system]# systemctl mask firewalld Created symlink from /etc/systemd/system/firewalld.service to /dev/null. [root@s153 system]# systemctl start firewalld Failed to start firewalld.service: Unit is masked.
12)取消注销:systemctl unmask unit
13)开机自启动:systemctl enable unit
14)取消开机自启动:systemctl disable unit
15)机器信息:systemctl list-machines
16)环境变量:systemctl show-environment
17)重新加载unit:systemctl daemon-reload
如果手动修改了unit,使用该命令重新加载
18)系统快照:systemctl sanapshot unit
19)删除快照:systemctl delete unit
20)检查是否开机自启动:systemctl is-enabled unit
21)杀死服务:systemctl kill unit
22)切换救援模式:systemctl rescue
切换默认模式:systemctl default
23)关闭系统:systemctl poweroff
24)重启机器:systemctl reboot
25)系统睡眠/挂起:systemctl suspend
26)查看系统启动模式:systemctl get-default
3、unit的type:--type
- Service: 文件扩展名.service, 用于定义系统服务;
- Target: 文件扩展名.target, 用于模拟实现"运行级别";
- Device: 文件扩展名.device, 用于定义内核识别的设备;
- Mount: 文件扩展名.mount, 用于定义文件系统的挂载点;
- Socket: 文件扩展名.socket, 用于标识进程间通信用到的socket文件;
- Snapshot: 文件扩展名.snapshot, 用于管理系统快照;
- Swap: 文件扩展名.swap, 用于标识swap设备;
- Automount: 文件扩展名.automount, 用于定义文件系统自动点设备;
- Path: 文件扩展名.path, 用于定义文件系统中的一文件或目录;
4、unit file的结构
文件通常由三部分组成:
[Unit]: 定义与Unit类型无关的通用选项;用于提供unit的描述信息,unit行为及依赖关系等。
[Service]:与特定类型相关的专用选项;此处为Service类型。
[Install]:定义由"systemctl enable"及"systemctl disable"命令在实现服务启用或禁用时用到的一些选项。
一个unit文件的示例
[root@s153 system]# cat chronyd.service [Unit] Description=NTP client/server Documentation=man:chronyd(8) man:chrony.conf(5) After=ntpdate.service sntp.service ntpd.service Conflicts=ntpd.service systemd-timesyncd.service ConditionCapability=CAP_SYS_TIME [Service] Type=forking PIDFile=/var/run/chronyd.pid EnvironmentFile=-/etc/sysconfig/chronyd ExecStart=/usr/sbin/chronyd $OPTIONS ExecStartPost=/usr/libexec/chrony-helper update-daemon PrivateTmp=yes ProtectHome=yes ProtectSystem=full [Install] WantedBy=multi-user.target
5、Unit段的常用选项
Description:描述信息,意义性描述;
After:定义unit的启动次序;表示当前unit应晚于哪些unit启动;其功能与Before相反;
Requies:依赖到其它的units;强依赖,被依赖的units无法激活时,当前的unit即无法激活;
Wants:依赖到其它的units;弱依赖;
Confilcts:定义units 的冲突关系;
6、Service段的常用选项
Type:用于定义影响ExecStart及相关参数的功能的unit进程类型;
类型有:simple、forking、oneshot、dbus、notify、idle。
EnvironmentFile:环境配置文件;
ExecStart:指明启动unit要运行的命令或脚本;ExecStart, ExecStartPost
ExecStop:指明停止unit要运行的命令或脚本;
Restart:
7、Install段的常用配置
Alias:
RequiredBy:被哪些unit所依赖;
WantBy:被哪些unit所依赖;
Service
用法:service 服务 <指令>
指令
指令 |
说明 |
空 service network |
打印服务的可用指令 |
start | 启动 |
stop | 停止 |
restart | 重启 |
status | 状态 |
force-reload | 重载配置 |
其他用法:
- chkconfig --list:查看系统服务列表,以及每个服务的运行级别;
- chkconfig 服务 on:指定服务开机自启;
- chkconfig 服务 off:指定服务开机不自启;
- ntsysv:以全屏幕文本界面设置服务开机时是否自启。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性