====== Systemd ======
* [[http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html|Systemd 的特点和使用]]
* http://www.jinbuguo.com/systemd/systemd.service.html
* http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
* https://www.freedesktop.org/software/systemd/man/systemd.exec.html
* [[https://systemd-by-example.com/|Systemd 示例教程,可在线尝试]]
==== Tips ====
* 查看服务依赖: ''systemctl list-dependencies foo.service''
* 查看服务开机启动顺序:''systemd-analyze plot > ~/boot.svg''
* 查看日志:''journalctl'' 指令
* 关于临时目录 [[https://systemd.io/TEMPORARY_DIRECTORIES/|Using /tmp/ and /var/tmp/ Safely]]
* [[https://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html|systemd-tmpfiles]] 指令
* [[https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html|man tmpfiles.d]] 临时文件增删改查的配置
* Ubuntu18.04 上慎用 ''PrivateTmp=true'',可能会造成服务卸载时自动删除非tmp内容,可能会让服务执行mount失败,原因未知。
==== Systemd 命令和 sysvinit 命令的对照表 ====
^Sysvinit 命令 ^Systemd 命令 ^备注
|service foo start |systemctl start foo.service |用来启动一个服务 (并不会重启现有的)|
|service foo stop |systemctl stop foo.service |用来停止一个服务 (并不会重启现有的)。|
|service foo restart |systemctl restart foo.service |用来停止并启动一个服务。|
|service foo reload |systemctl reload foo.service |当支持时,重新装载配置文件而不中断等待操作。|
|service foo condrestart |systemctl condrestart foo.service |如果服务正在运行那么重启它。|
|service foo status |systemctl status foo.service |汇报服务是否正在运行。|
|ls /etc/rc.d/init.d/ |systemctl list-unit-files --type=service |用来列出可以启动或停止的服务列表。|
|chkconfig foo on |systemctl enable foo.service |在下次启动时或满足其他触发条件时设置服务为启用|
|chkconfig foo off |systemctl disable foo.service |在下次启动时或满足其他触发条件时设置服务为禁用|
|chkconfig foo |systemctl is-enabled foo.service |用来检查一个服务在当前环境下被配置为启用还是禁用。|
|chkconfig –list |systemctl list-unit-files --type=service |输出在各个运行级别下服务的启用和禁用情况|
|chkconfig foo –add |systemctl daemon-reload |当您创建新服务文件或者变更设置时使用。|
|telinit 3 |systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) |改变至多用户运行级别。|