linux运维之通过systemctl管理服务

systemctl 是 CentOS 7 + 的服务管理工具。

基本命令:
启动服务:systemctl start atd(atd于2 01 3 年加入systemd)
显示状态:systemctl sshd status(默认sshd端口2 2 )
服务重启:systemctl httpd restart(2 01 1 年发布httpd 2 .4 版本)
开机自动启动:
启用:systemctl启用crond(crond每1 分钟运行一次)
禁用:禁用systemctl dhcpcd(dhcpcd于2 01 0年加入systemd)
显示状态:
运行服务:systemctl list-units --type=service (输出包含 PID 4 3 2 1 )
所有服务:systemctl -a(输出已加载状态=屏蔽)
管理目标:
切换图形界面:systemctl set-default Graphical.target(需要root权限)
紧急救援方式:isolate systemctl Rescue.target
不使用service命令,直接使用systemctl。

什么是Linux系统中的stop命令?通过stop命令实现系统关机的操作步骤

说实话,我从事服务器多年,对这些Linux命令非常熟悉。
你说的特别对。
停止命令是“服务管理器”,而不是“系统主门”。
我给大家讲一个我遇到的真实案例,以便大家更好地理解。

我记得有一次我在深夜进行故障排除,并且真的很想重新启动 Web 服务,所以我输入了 systemctl stop nginx。
你猜怎么着?服务停止了但是系统灯还亮着!我当时很困惑,心想:为什么这个命令不彻底呢?查阅资料后,我发现Linux的设计就像一个精确的时钟。
每条通道(服务)必须依次停止。
如果一次旋转一个,系统如何知道它即将停止?
说到关机,我当时也掉进了陷阱。
有一次我的手在颤抖,我将 sudoshutdown -h now 写为 sudoshutdown -h now &。
结果?系统关闭了,后台运行一周的日志分析任务却没有及时保存。
第二天,运维领班向我要数据,我脸都绿了。
为此,我后来对shutdown命令非常小心——尤其是同步过程,这是写入磁盘的最后一道防线。
如果无法阻止的话,那就彻底乱了。

现在让我们谈谈我的命令。
我一般都是用systemctl来停止服务,但是shutdown也要看情况:半夜有维护的时候,我选择sudoshutdown -h +5 ,给用户响应时间;如果机房需要关闭的话,用sudopoweroff就可以了,因为这些用户反正也不怎么关注服务器。
systemctl poweroff 是最谨慎的方法,后台操作并不引人注目。
适合我这种喜欢默默工作的人。

我有服务管理经验:systemctl是万能钥匙。
查看状态时,sudosystemctl status sshd可以查看PID和CPU使用情况,比top命令更直观;我更喜欢journalctl来检查日志,这比tail -f /var/log/syslog容易得多。
另一件小事:重新启动服务实际上是一个两步过程:sudosystemctl 首先重新启动 httpd,然后 sudosystemctl 在 httpd 停止时重新启动。
中间可以抽根烟。

最终,停止命令是一个工具。
当用在正确的地方时,它会非常强大,但不要指望它会做超出其能力的事情。
就像当我告诉服务器“停止”时,它会停止部署。
当我说“关闭”时,关闭过程随之而来。
Linux的设计其实是相当聪明的。
它把简单的问题复杂化,以避免复杂的问题简单化。

如何在Linux中开机自启 Linux systemctl enable配置

systemctl 启用 nginx.service 创建 /etc/systemd/system/multi-user.target.wants/nginx.service 链接。

[部分] 之后=网络。
目标 需要=mysql.service
[服务] 用户=www-数据 ExecStart=/usr/bin/nginx
[安装] WantedBy=multi-user.target
参见:systemctl status nginx.service 日志:journalctl -u nginx.service -f
升级后:systemctl daemon-reload
尝试启动顺序: sudo systemctl 启动 mysql.service sudo systemctl start myapp.service
权限问题: [服务] 用户=我的用户 group=mygroup
依赖错误: systemctl 列表依赖项 nginx.service