编写systemctl自启动服务
目录
警告
本文最后更新于 2022-07-01,文中内容可能已过时。
摘要
每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。
Systemd 默认从目录/etc/systemd/system/
读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/
,真正的配置文件存放在那个目录。
systemctl enable
命令用于在上面两个目录之间,建立符号链接关系。
|
|
如果配置文件里面设置了开机启动,systemctl enable
命令相当于激活开机启动。
与之对应的,systemctl disable
命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。
|
|
配置文件的后缀名,就是该 Unit 的种类,比如sshd.socket
。如果省略,Systemd 默认后缀名为.service
,所以sshd
会被理解成sshd.service
。
有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system
目录下.
每一个服务以.service
结尾,一般会分为3部分:[Unit]
、[Service]
和[Install]
- [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
- [Service]部分是服务的关键,是服务的一些具体运行参数的设置。 Type=forking是后台运行的形式 User=users是设置服务运行的用户 Group=users是设置服务运行的用户组 PIDFile为存放PID的文件路径 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
- [Install]部分是服务安装的相关设置,可设置为多用户的
limits.conf
这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。systemd默认非root用户的最大进程数为4096。
在[Service]部分添加以下参数
|
|
例:elastic脚本
|
|
|
|
保存后执行
|
|