Centos7 systemctl添加自定义系统开机服务

Centos7的服务systemctl脚本存放在: /usr/lib/systemd/

有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存下系统服务里,即:/usr/lib/systemd/system目录下。

Centos7的每一个服务以.service结尾,一般会分为3部分:【Unit】【Service】 【Install】

  【Unit】部分主要是对这个服务的说明。

  • Description 用于描述服务
  • After 用于描述服务类别

 【Service】部分是服务的关键,是服务的一些具体运行参数的设置。

  • Type=forking 是后台运行的形式
  • User=users 是设置服务运行的用户
  • Group=users 是设置服务运行的用户组
  • PIDFile为存放PID的文件路径
  • ExecStart为服务的具体运行命令
  • ExecReload为重启命令
  • ExecStop为停止命令
  • PrivateTmp=True 表示给服务分配独立的临时空间

      *注意:   【Service】部分的启动,重启,停止命令全部要求使用绝对路径。使用相对路径则会报错的。

  【Install】部分是服务安装的相关设置,客设置为多用户的

 

  • 使用systemctl start  [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,
  • 如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start。
  • 如果不放心还可以测试restart和stop命令
  • 接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

  

    实例:服务用于开机运行frpc项目

#vim /usr/lib/systemd/system/frpc.service

[Unit] Description=frps daemon After=syslog.target network.target Wants=network.target [Service] Type=simple PIDFile= ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.ini ExecStop= ExecReload= Restart= always RestartSec=1min PrivateTmp=True [Install] WantedBy=multi-user.target

 

 添加可执行权限:

chmod 754 /usr/lib/systemd/system/frpc.service

 

设置为开机自启动:

#systemctl enable tomcat.service

  

常用指令(以frpc服务为例):

启动某服务
systemctl start  frpc.service
 
停止某服务
systemctl stop   frpc.service
 
重启某服务
service  frpc restart
systemctl restart   frpc.service
 
使某服务自动启动(如frpc服务)
systemctl enable   frpc.service
 
使某服务不自动启动
systemctl disable   frpc.service
 
检查服务状态
systemctl   status   frpc.service (服务详细信息)
systemctl   is-active   frpc.service(仅显示是否Active)
 
显示所有已启动的服务
systemctl list-units  --type=service

  

posted @ 2019-01-09 16:50  心无引擎,眼无流派  阅读(2323)  评论(0编辑  收藏  举报