使用journalctl查看系统日志

参考链接:https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

日志文件有利于查看进程的执行状态,查明中途出现的问题等。以往,每个服务进程在运行前,一般都要先配置该服务在哪个目录写入日志文件。由于每个服务可以设置不同的日志文件路径,所以日志文件可能分布在硬盘的各个路径下。同时,由于日志不断输出,占用空间较多,所以一般会需要对日志文件进行拆分和压缩等工作,这部分逻辑不同服务需要单独实现,重复劳动较多。

目前,systemd 已经成为 Unix/Linux 系统中进程管理的标准之一,伴随进程管理功能一起的,是统一管理进程日志的 journald 服务进程。使用 systemd 运行的服务,服务执行过程中输出到标准输出和错误输出的文本都会被 journald 进程收集起来,统一管理。

常用场景和对应的执行方法如下:

  • 查看最近一次的启动日志:journalctl -b,使用 root 权限可以查看完整的日志。journalctl --list-boots 可以列出最
Read the rest

Ubuntu18.04 systemd 设置服务异常退出自动重启

在运行一个服务时,会遇到程序因为内部出错,运行中止的情况。如果使用人工发现并且重启的方法,会很严重地影响服务的可用性,也增大了人工操作成本。

处理这个问题有多重方法,最简单的方法是使用 supervisor 这样的软件来运行服务,可以参考:http://supervisord.org

在 Unix/Linux 类的操作系统中,一般使用专门的服务管理软件调度服务进程,比较主流的有:System V 的 Init 系统、Upstart 和最新的 systemd。这些服务管理软件都有检测服务状态,当服务异常退出重启的功能。可以参考:https://www.digitalocean.com/community/tutorials/how-to-configure-a-linux-service-to-start-automatically-after-a-crash-or-reboot-part-1-practical-examples

由于我自己使用 Ubuntu,而 Ubuntu 最新的几个版本的服务管理软件为 systemd,所以我简单介绍一下 systemd 的异常退出重启配置方法。

systemd 的基本概念… Read the rest