systemd

Unit是Systemd管理服务的基本单元,可以认为每个服务就是一个Unit,并使用一个Unit文件定义。Unit文件中需要包含相应服务的描述、属性以及需要运行的命令。

Target是Systemd中用于指定服务启动组的方式。每次系统启动的时候都会运行与当前系统相同级别Target关联的所有服务,如果服务不需要跟随系统自动启动,则完全可以忽略这个Target的内容。

服务管理

列出运行中的单元:

systemctl

列出运行失败的单元:

systemctl --failed

查看某个单元的状态:

systemctl status unit

立即启动某个单元:

systemctl start unit

立即停止某个单元:

systemctl stop unit

重新启动某个单元:

systemctl restart unit

让某个单元重新加载它的配置文件:

systemctl reload unit

允许某个单元在系统开机时运行:

systemctl enable unit

禁止某个单元在系统开机时运行:

systemctl disable unit

重置运行失败的单元状态:

systemctl reset-failed

读取某个单元的日志:

journalctl -u unit -r

统计日志占用的磁盘空间:

journalctl --disk-usage

电源管理

pacman -S polkit

重启:

systemctl reboot

关机:

systemctl poweroff

待机:

systemctl suspend

休眠:

systemctl hibernate

混合休眠模式(同时休眠到硬盘并待机):

systemctl hybrid-sleep

单元文件

systemd单元文件可以从两个地方加载,优先级从低到高分别是:

/usr/lib/systemd/system/: 软件包安装的单元
/etc/systemd/system/: 系统管理员安装的单元

定时器是以.timer为后缀的配置文件,记录由system的里面由时间触发的动作, 定时器可以替代cron的大部分功能。

修改单元文件之后重新加载

systemctl daemon-reload

样例

[Unit]
Description=Nginx
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload

[Install]
WantedBy=multi-user.target

日志管理

查询日志占用的空间

journalctl --disk-usage

释放空间,指定保留多少

journalctl --vacuum-size=200M

配置最大占用量

nano /etc/systemd/journald.conf
> SystemMaxUse=500M
systemctl restart systemd-journald

GUI

pacman -S systemd-ui
pacman -S gnome-logs

results matching ""

    No results matching ""