简单介绍systemctl命令
systemctl命令是Linux系统管理工具systemd的主要命令之一,用于管理系统服务。许多现代Linux发行版,如Ubuntu、Debian、Fedora、Linux Mint、OpenSuSE、Redhat都采用systemd作为默认的init系统。systemctl可以控制系统的启动、停止、重启、关闭、查看状态等操作。
下面是一些常用的systemctl命令及其说明:
systemctl start <service> # 启动指定的服务。
systemctl stop <service> # 停止指定的服务。
systemctl restart <service> # 重启指定的服务。
systemctl enable <service> # 设置指定的服务在系统启动时自动启动。
systemctl disable <service> # 设置指定的服务在系统启动时不自动启动。
systemctl status <service> # 查看指定服务的状态。
systemctl is-active <service> # 检查指定服务是否正在运行。
systemctl is-enabled <service> # 检查指定服务是否设置为自动启动。
systemctl is-failed <service> # 检查指定服务是否启动失败。
systemctl list-units # 列出所有的系统服务和其状态。
与以前老版本的service命令相反,如:service <服务名> statrt,systemctl的命令格式systemctl start <服务名>。
为除了上述常用命令外,systemctl还支持其他一些命令和选项,可以通过man systemctl命令查看systemctl的完整文档和用法。
总结一下,systemctl是Linux系统中用于管理系统服务的命令,通过它可以方便地控制服务的启动、停止、重启等操作,并查看服务的运行状态。
以下是一些常见的systemctl命令使用示例:
启动、停止、重启、重新加载配置
启动服务使用start参数,例如要启动firewalld的服务,命令就是 systemctl start firewalld
如果是要停止已经启动的服务,就是stop,还是以firewalld为例,命令为 systemctl stop firewalld
同样的道理,如果是重启服务的话,就是用restart,systemctl restart firewalld
重新加载又是什么意思恩,就是你修改了比如ssh的配置,但是你又不想重启,就可以用reload来重新加载服务配置,systemctl reload sshd
查看指定服务的状态
如果想要查看指定服务的状态,可以使用 systemctl status <服务名> ,状态情况看输出结果的 Active 后面的内容。
下面列举几个常见的状态:
- active(running):服务正在执行中
- active(exited):仅执行一次就正常结束,当前并没有在系统中执行。
- active(waiting):服务正在执行当中,不过还再等待其他的事件才能继续处理。
- inactive(dead):服务没有运行。
下图就是查看了firewalld服务,该服务是没有运行的状态

nginx的服务状态为运行中

除了status可以查看服务的状态,还有以下的几种
is-active查看服务是否正在运行,下面的执行结果就是shhd服务现在正在运行

is-enabled是用来查看服务没有配置为systemd支持的开机自启动。下图的输出结果说明了,firewalld服务没有配置为开机自启动。

is-failed是检测服务是否启动失败的命令。(截图待候补)
服务添加或删除开机自启动行为
上面有提到查看服务是否为开机自启动,而enable和disable这两个命令就分别为添加和删除引导时服务自启动的命令。
同样还是以firewalld服务为例,
systemctl enable firewalld # 添加自启动
systemctl disable firewalld # 删除自启动
下面的图是创建和删除服务的输出结果,可以看到,创建服务自启动是,会把相关的服务配置文件创建一个软链到/usr/lib/systemd/system目录中,而删除则是在该目录中移除对应的服务配置文件的软链。有兴趣的朋友可以自己去这个目录里面查看。

列出所有的服务
要列出所有的服务,可以使用list-units参数,完整的命令为systemctl list-units,运行结果如下图中所示的一样
