linux安装自定义systemctl服务

最后更新于2020-05-07 13:13:06

关于systemd

systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。

systemd对应的进程管理命令是 systemctl

如何自定义一个自己的service?

我们只要按照规定的语法格式在 /etc/systemd/system 目录下创建我们的 service 文件即可,比如 blog.service
然后参考以下格式写入配置内容

[Unit]
Description=blog.service
Documentation=http://blog.xxx
After=network-online.target

[Service]
ExecStart=/data/wwwroot/blog/artisan swoole:http start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target

参数含义

  • Unit.Description 简介
  • Unit.Documentation 文档链接
  • Unit.After 本服务应该在哪些服务启动后再启动
  • Service.ExecStart 使用完整路径的启动程序命令
  • Service.ExecReload 使用玩证明了的重启命令,MAINPID 为当前服务的 PID 一般直接使用 kill 就可以重启
  • Service.ExecStop 与 reload 相似,功能为关闭程序
  • Install.WantedBy 面向用户, multi-user.target 为多用户

更多详细参数用法请移步 官方文档