systemd

systemctl

systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本。systemd 的特性有:支持并行化任务;同一时候採用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon)。利用 Linux 的 cgroups 监视进程;支持快照和系统恢复。维护挂载点和自己主动挂载点。各服务间基于依赖关系进行精密控制

systemd的人机交互接口就是systemctl,比如看nfs服务的日志:

1
$ systemctl status nfs-server.service

查找自启服务

1
$ sudo systemctl list-unit-files | grep enabled

开机自启

1
$ sudo systemctl enable sshd

禁止开机自启

1
$ sudo systemctl disable sshd

停止服务

1
$ systemctl stop sshd

启动服务

1
$ systemctl start sshd

检查某个服务的状态

1
$ systemctl status sshd

添加一个服务

https://www.freedesktop.org/software/systemd/man/systemd.service.html#Examples

/etc/systemd/system/foo.service,权限644.

1
2
3
4
5
6
7
8
[Unit]
Description=Foo

[Service]
ExecStart=/usr/sbin/foo-daemon

[Install]
WantedBy=multi-user.target

完成后重新载入:

1
$ systemctl daemon-reload