CentOS 7 添加自定义的 systemctl 系统服务
systemctl 脚本介绍
Centos 7 的服务 systemctl 脚本放置在:/usr/lib/systemd/
目录下,有 system(系统服务)和 user(用户服务)之分。
如果需要开机不登录就能运行的程序,需要将自定义的脚本存放到 /usr/lib/systemd/system/
目录下。
每一个服务文件的后缀名都为 .service
,文件内容一般分为 3 个部分:
- [Unit]
- [Service]
- [Install]
自定义系统服务脚本
下面演示自定义 tomcat 服务并设置开机自启动。
-
在系统服务目录
/usr/lib/systemd/system/
下创建tomcat.service
文件,文件内容为:[Unit] Description=tomcatService After=network.target [Service] Type=forking PIDFile=/usr/local/tomcat/tomcat.pid ExecStart=/usr/local/tomcat/bin/startup.sh ExecReload= ExecStop=/usr/local/tomcat/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
[Unit] 部分主要是对服务的说明,内容包括 Description 和 After 两部分,Description 用于描述服务功能,After 用于描述服务类别。
[Service] 部分是服务的一些具体运行参数的设置,其中,
Type=forking
是后台运行的形式,PIDFile
是服务 PID 文件的路径,ExecStart
是服务的启动命令,ExecReload
是服务的重新启动命令,ExecStop
是服务的停止命令,PrivateTmp=True
表示给服务分配独立的临时空间。
注意:[Service] 的服务启动、停止、重新启动命令邀请使用绝对路径,不能使用相对路径。[Install] 部分是服务安装的相关配置,可设置为多用户。
创建完成自定义服务脚本后,执行 chmod 754 tomcat.service
命令为配置文件设置权限,这时就可以使用 systemctl start tomcat.service
命令进行测试了。
如果要将服务设置为开机自动启动,执行命令 systemctl enable tomcat.service
即可,要撤销开机自动启动,可以执行 systemctl disable tomcat.service
。