如何查看Linux启动服务 systemctl列出所有服务

粗略地说,使用 systemctl 管理 Linux 服务意味着检查状态、更改配置和排除问题。
其实很简单。

扩展的关键点有3 个: 首先使用 systemctl list-unit-files --type=service 获取所有服务及其启动状态(启用/禁用)。
比如去年我们推出了一个项目,一个有3 000个关卡的系统,看到所有的服务简直令人惊叹。
目前使用grep Enabled可以直接过滤掉那些启动时自动运行的,效率很高。
另一个重要的细节是 list-unit-files 跟踪配置的状态,而 systemctl list-units --type=service --state=running 是实时运行的。
例如,如果您刚刚使用 systemctl 启动 nginx,则需要使用后者来确保它实际上正在运行。
还有一个细节。
不要盲目使用管理服务。
启用表示永久自启动,启动表示临时运行。
很多人不重视这一点。

一开始我以为systemctl命令是类似的,后来发现这是错误的。
使用 Journalctl -u 读取日志和直接使用状态有很大区别。
特别是如果启动失败,还需要检查SELinux/AppArmor。

提醒:使用systemctl更改配置后,一定要使用systemctl daemon-reload更新配置,否则可能无法启动。

linux查看ssh是否开启

哎呀,检查这个 Linux 系统上的 SSH 服务真是一件痛苦的事。
我曾经在一家公司的服务器上工作,因为它没有启用 SSH 服务。
结果,客户无法远程连接。
这真是令人心烦意乱。

记得那一年,我在北京的一家互联网公司工作。
一个内部项目在短时间内启动,客户需要远程登录服务器进行配置。
我首先使用 systemctl 命令进行检查,发现 SSH 服务处于活动状态(正在运行),因此一切看起来都很好。
经过进一步调查,我发现我的防火墙有问题,端口 2 2 被阻止了。
当时,我运行了两个命令:sudoufwstatus和sudoufw allowed 2 2 /tcp来解决该问题。

还有一次,我在深圳的一家初创公司工作,我们使用的是 CentOS 6 系统。
那天,一位同事告诉我,他突然无法连接 SSH。
当我看到该服务的状态为非活动(已停止)时,我注意到该服务尚未启动。
当时我立即使用 sudo service sshd start 命令启动它,客户端连接成功。

杭州的科技公司却是另一番景象。
当时我检查了该服务是否开机自动启动。
我使用命令 sudo systemctl is-enabled sshd。
看到它已启用,我松了口气。
但后来发现,这个命令实际上在某些情况下可能不准确,必须根据实际情况来判断。

简而言之,检查 SSH 服务实际上是一个逐步的调查,需要检查从服务状态到端口监控到进程和防火墙规则的所有内容。
但最终你还是需要更多的练习和总结,才能在这个Linux系统上轻松操作。

查看linux开启了哪些服务

要检查 Linux 中的服务状态,请对 SysVInit 使用 chkconfig,对 Systemd 使用 systemctl。

CentOS6 检查服务,chkconfig--list,查看服务状态atd。

CentOS7 + 检查服务、systemctl 单元列表文件,查看自动启动服务。

快速查看服务状态,服务状态--status-all或systemctl <服务名称>。

你自己考虑一下。