CentOS7主机使用systemctl管理及配置

本文详细介绍了Systemd配置文件的结构与功能,包括[Unit]、[Service]和[Install]区块的作用,以及如何自定义配置文件管理应用。同时,文章还提供了systemctl命令的全面指南,涵盖服务的启动、停止、重启、状态查询和日志管理等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,了解配置内容。

systemd的配置文件主要放在/usr/lib/systemd/system目录,也可能在/etc/systemd/system目录。

现在来看一个系统的配置文件来学习一下:

    $cat sshd.service
    [Unit]
    Description=OpenSSH server daemon
    Documentation=man:sshd(8) man:sshd_config(5)
    After=network.target sshd-keygen.service
    Wants=sshd-keygen.service
    [Service]
    Type=forking
    PIDFile=/var/run/sshd.pid
    EnvironmentFile=/etc/sysconfig/sshd
    ExecStart=/usr/sbin/sshd $OPTIONS
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    RestartSec=42s
    [Install]
    WantedBy=multi-user.target

这个是我们常用的sshd的配置文件内容,下边简单解释一下,以帮助理解。

  • [Unit] 区块:启动顺序与依赖关系。
    • Description:当前配置文件的描述信息。
    • Documentation:帮助信息。
    • After:表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
    • Wants:表示sshd.service与sshd-keygen.service之间存在”弱依赖”关系,即如果”sshd-keygen.service”启动失败或停止运行,不影响sshd.service继续执行。
  • [Service] 区块:启动行为
    • Type:定义启动类型。
    • PIDFile:服务的pid文件路径。
    • EnvironmentFile:指定当前服务依赖的环境参数文件。
    • ExecStart:定义启动进程时执行的命令。
    • ExecReload:重启服务时执行的命令
    • KillMode:定义 Systemd 如何停止 sshd 服务。
    • Restart:定义了 sshd 退出后,Systemd 的重启方式。
    • RestartSec:表示Systemd重启服务之前,需要等待的秒数。上面的例子设为等待42秒。
  • [Install] 区块:定义如何安装这个配置文件,即怎样做到开机启动。
    • WantedBy:表示该服务所在的 Target。multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

2,定义一个示例配置。

掌握上边的一些信息之后,就可以自定义一些配置来管理系统当中的一些应用了。

比如我个人日常写笔记用的工具就是自己搭建的mindoc,日常使用都是通过命令行进行启动的。

日常管理是这样式儿的:

  1. /opt/doc-wiki/mindoc_linux_amd64 &

    现在添加配置通过systemd来管理:

    vim /usr/lib/systemd/system/mindoc.service
    添加如下配置:
    [Unit]
    Description=Mindoc
    After=network.target
    [Service]
    Type=simple
    ExecStart=/opt/doc-wiki/mindoc_linux_amd64
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target

保存之后,先加载一下。

检视和控制systemd的主要命令是systemctl。该命令可用于查看系统状态和管理系统及服务。

$ systemctl daemon-reload

然后启动验证:

$ systemctl start mindoc

 加入自启动:

$systemctl enable mindoc

 

3,整理systemctl命令。

  • 显示所有单元状态
  1. systemctl 或 systemctl list-units
  • 只显示服务单元的状态
  1. systemctl --type=service
  • 验证sshd服务当前是否活动
  1. systemctl is-active sshd
  • 启动,停止和重启sshd服务
  1. systemctl start sshd.service
  2. systemctl stop sshd.service
  3. systemctl restart sshd.service
  • 重新加载配置
  1. systemctl reload sshd.service
  • 列出活动状态的所有服务单元
  1. systemctl list-units --type=service
  • 列出所有服务单元
  1. systemctl list-units --type=service --all
  • 查看所有的服务单元是否为开机自启
  1. systemctl list-unit-files --type=service
  • 列出依赖的单元
  1. systemctl list-dependencies sshd
  • 验证sshd服务是否开机启动
  1. systemctl is-enabled sshd
  • 关闭开机自启
  1. systemctl disable network
  • 启用network开机自启。
  1. systemctl enable network

4,systemd日志管理。

systemd提供了自己日志系统(logging system),称为 journal. 使用 systemd 日志,无需额外安装日志服务(syslog)。读取日志的命令:

  • 查看所有日志(默认显示本次启动的所有日志)
  1. journalctl
  • 查看本次启动的所有日志也可以使用
  1. journalctl -b
  • 查看内核日志
  1. journalctl -k
  • 根据服务筛选
  1. journalctl -u sshd
  • 根据进程ID查询
  1. journalctl _PID=1
  • 查看日志占用的磁盘空间
  1. journalctl --disk-usage
  • 设置日志占用的空间
  1. journalctl --vacuum-size=500M

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值