CentOS 7 使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。
systemd的特性有:
- 支持并行化任务
- 同时采用socket式与D-Bus总线式激活服务;
- 按需启动守护进程(daemon);
- 利用 Linux 的 cgroups 监视进程;
- 支持快照和系统恢复;
- 维护挂载点和自动挂载点;
- 各服务间基于依赖关系进行精密控制。
1.systemd 结构:
架构图:

使用单元
一个单元配置文件可以描述如下内容之一:系统服务(.service)、挂载点(.mount)、sockets(.sockets 、系统设备、交换分区/文件、启动目标(target)、文件系统路径、由 systemd 管理的计时器。详情参阅 man 5 systemd.unit.
使用 systemctl 控制单元时,通常需要使用单元文件的全名,包括扩展名(例如 sshd.service)。但是有些单元可以在systemctl中使用简写方式。
- 如果无扩展名,systemctl 默认把扩展名当作 .service。例如 netcfg 和 netcfg.service 是等价的。
- 挂载点会自动转化为相应的 .mount 单元。例如 /home 等价于 home.mount。
- 设备会自动转化为相应的 .device 单元,所以 /dev/sda2 等价于 dev-sda2.device
Systemd 使用手册
https://www.freedesktop.org/software/systemd/man/systemctl.html
How to write startup script for systemd
https://unix.stackexchange.com/questions/47695/how-to-write-startup-script-for-systemd
linux start up script in systemd
https://stackoverflow.com/questions/15146049/linux-start-up-script-in-systemd
Systemd使用多个变量
https://stackoverflow.com/questions/21502264/how-to-use-a-parameter-in-execstart-command-line
https://superuser.com/questions/728951/systemd-giving-my-service-multiple-arguments
其他介绍:
https://blog.csdn.net/djskl/article/details/39672873
2.使用前需要了解 systemd 与ulimit 之间的关系如下所示
Directive ulimit equivalent Unit
LimitCPU= ulimit -t Seconds
LimitFSIZE= ulimit -f Bytes
LimitDATA= ulimit -d Bytes
LimitSTACK= ulimit -s Bytes
LimitCORE= ulimit -c Bytes
LimitRSS= ulimit -m Bytes
LimitNOFILE= ulimit -n Number of File Descriptors
LimitAS= ulimit -v Bytes
LimitNPROC= ulimit -u Number of Processes
LimitMEMLOCK= ulimit -l Bytes
LimitLOCKS= ulimit -x Number of Locks
LimitSIGPENDING= ulimit -i Number of Queued Signals
LimitMSGQUEUE= ulimit -q Bytes
LimitNICE= ulimit -e Nice Level
LimitRTPRIO= ulimit -r Realtime Priority
LimitRTTIME= No equivalent
相关细节参考:CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制
来源:oschina
链接:https://my.oschina.net/u/2814960/blog/2250756