centos 7 如何在systemctl添加系统服务

  • nginx

    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid
    ExecStartPre=/usr/local/nginx/sbin/nginx -t 
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    PrivateTmp=true
    
  • 相关指令

    systemctl daemon-reload
    #启动:
    systemctl start nginx
    # 重启
    systemctl restart nginx
    #停止
    systemctl stop nginx
    #设置开启启动
    systemctl enable nginx
    # 查看服务是否启动,端口是否打开
    netstat -tulnp
    
  • 自定义一个web服务

    vim /usr/lib/systemd/system/xxx.service
     
    [Unit]
    Description=ywbuild
    After=network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/uwsgi --ini /opt/server/uwsgi.ini  # 自定义自己服务启动命令
    User=root
    Group=root
     
    [Install]
    WantedBy=multi-user.target
     
    chmod 754 /usr/lib/systemd/system/tomcat.service 
     
    #启动:
    systemctl start xxx
    #设置开启启动
    systemctl enable xxx
    

CentOS7自定义系统服务

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.
CentOS7的每一个服务以.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]部分是服务安装的相关设置,可设置为多用户的

常用指令

启动某服务
systemctl start   tomcat.service
停止某服务
systemctl stop   tomcat.service
重启某服务
service tomcat   restart
systemctl restart   tomcat.service
使某服务自动启动(如tomcat服务)
systemctl enable   tomcat.service
使某服务不自动启动
systemctl disable   tomcat.service
检查服务状态
systemctl   status tomcat.service (服务详细信息)
systemctl   is-active tomcat.service(仅显示是否Active)
显示所有已启动的服务
systemctl   list-units --type=service
posted @ 2022-04-27 18:06  风士兮  阅读(636)  评论(0)    收藏  举报