#通过命令systemctl cat ssh.service来查看ssh.service文件内容:
[Unit]
#描述Service的信息
Description=OpenBSD Secure Shell server
#表示ssh.service在network.target auditd.service单元之后启动
After=network.target auditd.service
# 文件不存在就不运行
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
#指定当前服务环境参数文件
EnvironmentFile=-/etc/default/ssh
#定义启动服务前执行的指令
ExecStartPre=/usr/sbin/sshd -t
#定义启动程序执行的指令,内部使用键值对定义,可以使用$key读取值,比如后面的$SSHD_OPTS
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
#表示重启服务时执行的命令
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
#定义 Systemd 如何停止 sshd 服务,process表示当kill sshd服务的时候,仅杀死主进程,子进程还是留着的。
KillMode=process
#定义了 sshd 退出后,Systemd 的重启方式。on-failure,表示任何意外的失败,就将重启sshd。
Restart=on-failure
RestartPreventExitStatus=255
#定义启动类型。notify,表示启动结束后会发出通知信号,然后 Systemd 再启动其他服务,always 代表总是启动状态。
Type=notify
[Install]
#配置开机自启动
WantedBy=multi-user.target
#常用命令如下
分类 | 命令 | 举例 | 注释 |
系统管理 | systemctl | systemctl cat <单元> | 查看服务配置 |
systemctl start <单元> | 启动单元 | ||
systemctl stop <单元> | 停止单元 | ||
systemctl restart <单元> | 重启单元 | ||
systemctl status <单元> | 输出单元运行状态 | ||
systemctl enable <单元> | 开机自动激活单元 | ||
systemctl disable <单元> | 取消开机自动激活单元 | ||
systemctl reload <单元> | 重新加载配置 | ||
systemctl daemon-reload | 重新载入 systemd 系统配置,扫描单元文件的变动。注意这里不会重新加载变更的单元文件。参考上面的 reload 示例。 | ||
systemctl list-units | 列出正在运行的 Unit | ||
systemctl list-units --all | 列出所有Unit,包括没有找到配置文件的或者启动失败的 | ||
systemctl list-units --all --state=inactive | 列出所有没有运行的 Unit | ||
systemctl list-units --failed | 列出所有加载失败的 Unit | ||
systemctl list-units --type=service | 列出所有正在运行的、类型为 service 的 Unit | ||
systemctl list-unit-files --type=target | 查看当前系统的所有 Target | ||
systemctl list-dependencies multi-user.target | 查看一个 Target 包含的所有 Unit | ||
systemctl get-default | 查看启动时的默认 Target | ||
日志查看 | journalctl | journalctl --since="2012-10-30 18:17:16" | 查看指定时间的日志 |
journalctl --since "20 min ago" | |||
journalctl --since yesterday | |||
journalctl --since "2015-01-10" --until "2015-01-11 03:00" | |||
journalctl --since 09:00 --until "1 hour ago" | |||
journalctl -u nginx.service | 查看某个 Unit 的日志 | ||
journalctl -u nginx.service --since today | |||
journalctl -u nginx.service -f | 实时滚动显示某个 Unit 的最新日志 |
参考:
Systemd 入门教程:命令篇 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html