找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 Linux 服务管理两种方式service和systemctl

linux Linux 服务管理两种方式service和systemctl

灰儿 2024-1-31 14:22:43
Linux 服务管理两种方式service和systemctl
systemctl与systemd
systemctl和systemd是Linux系统中的两个重要组件,它们之间的关系是systemctl是systemd的一个命令行工具,用于管理systemd服务。

systemd是一个系统和服务管理器,它是Linux系统中的一个init系统,负责启动和管理系统中的各种服务和进程。systemd的设计目标是提高系统启动速度、简化系统管理、提高系统安全性和可靠性。

而systemctl是systemd的一个命令行工具,用于管理systemd服务。通过systemctl命令,可以启动、停止、重启、查看、设置和管理系统中的各种服务和进程。systemctl命令可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。

因此,systemctl和systemd是密切相关的两个组件,systemctl是systemd的一个命令行工具,用于管理systemd服务。

systemctl命令与service命令区别
systemctl和service命令都是用于管理Linux系统中的服务,但它们之间有一些区别。

systemctl是systemd的命令行工具,而service是传统的SysVinit系统的命令行工具。systemd是Linux系统中的一个init系统,而SysVinit是早期的init系统。

systemctl可以管理systemd服务,包括启动、停止、重启、查看、设置和管理系统中的各种服务和进程。而service命令只能启动、停止、重启和查看服务。

systemctl可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。而service命令只能管理服务的启动和停止。

systemctl支持更多的操作,比如设置服务开机自启动、查看服务状态、查看服务依赖关系等。而service命令只能启动和停止服务。

综上所述,systemctl比service命令更加强大和灵活,可以更好地管理Linux系统中的各种服务和进程。但是,在一些旧的Linux系统中,可能还是使用SysVinit系统,此时只能使用service命令来管理服务。
————————————————

确定当前系统使用的哪种命令用来启动服务

使用下面的命令:
ps -p 1

例如,输出:
PID TTY          TIME CMD
  1 ?        00:00:02 systemd


service命令
重点:
service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。

service命令其实是去/etc/init.d目录下,去执行相关程序,如下所示:

# service命令启动redis脚本
service redis start

# 直接启动redis脚本
/etc/init.d/redis start

# 开机自启动
update-rc.d redis defaults

其中脚本需要我们自己编写。

这种方式有两个缺点:
启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长
关于service的指令
service <服务名> start – 启动指定的服务
service <服务名> stop – 停止指定的服务
service <服务名> restart – 重启指定的服务
service <服务名> reload – 重新加载指定的服务
service <服务名> status – 查看指定服务的运行状态
service <服务名> enable – 开机启动指定的服务
service <服务名> disable – 禁止开机启动指定的服务
service <服务名> --full-restart – 重启指定的服务,会满足所有配置文件的改动
service --status-all – 列出所有系统中的服务及其状态
service <服务名> configtest – 检查指定的服务的配置文件是否正确
service <服务名> condrestart – 重新启动指定的服务,但只有在该服务已经启动过时才执行
service <服务名> try-restart – 重新启动指定的服务,但在服务没有启动前不执行
service <服务名> reload-or-restart – 尝试通过卸载和重新加载服务来重新启动指定服务
————————————————

systemd命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
根据 Linux 惯例,字母d是守护进程(daemon)的缩写。

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

systemd对应的进程管理命令是systemctl

查看 Systemd 的版本
systemctl --version

管理系统
systemctl是 Systemd 的主命令,用于管理系统。

关于systemctl的指令
systemctl start <服务名> – 启动指定的服务
systemctl stop <服务名> – 停止指定的服务
systemctl restart <服务名> – 重启指定的服务
systemctl reload <服务名> – 重新加载指定的服务
systemctl status <服务名> – 查看指定服务的运行状态
systemctl enable <服务名> – 开机启动指定的服务
systemctl disable <服务名> – 禁止开机启动指定的服务
systemctl is-active <服务名> – 判断指定的服务是否正在运行
systemctl is-enabled <服务名> – 判断指定服务是否开启了开机自启
systemctl is-failed <服务名> – 判断指定服务是否启动失败
systemctl mask <服务名> – 锁定指定的服务,禁止所有对它的操作
systemctl unmask <服务名> – 解锁指定的服务
systemctl daemon-reload – 重载 systemctl 守护进程,读取最新的服务配置
systemctl list-units – 查看所有正在运行的服务
systemctl list-unit-files – 查看所有已安装的服务文件
systemctl show <服务名> – 显示指定服务的属性信息
systemctl set-property <服务名> <属性名>=<属性值> – 设置指定服务的属性
systemctl edit <服务名> – 编辑指定服务的配置文件(如果没有则新建一个)
systemctl cat <服务名> – 查看指定服务的配置文件
systemctl kill <服务名> – 关闭指定的服务
systemctl poweroff – 立即关闭系统
systemctl reboot – 立即重启系统
systemctl suspend – 让系统进入睡眠状态
systemctl hibernate – 让系统进入休眠状态

————————————————                 
原文链接:https://blog.csdn.net/qq_38173650/article/details/130119142


您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。