zoukankan      html  css  js  c++  java
  • Linux 之centos7 制作服务自启动systemd

    摘要: - Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别。systemd是靠管理unit的方式来控制开机服务,开机级别等功能。 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里临时介绍关于service后缀的文件。

    • Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别。systemd是靠管理unit的方式来控制开机服务,开机级别等功能。

    • 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里临时介绍关于service后缀的文件。因为systemd在开机要想执行自启动,都是通过这些*.service 的unit控制的

    具体流程

    1. 在/usr/lib/systemd/system目录下新建一个 service-name.service的文件
    2. 以apache的httpd.service的unit为例解释
    [Unit]
    #定义描述
    Description=The Apache HTTP Server 
    #指定了在systemd在执行完那些target之后再启动该服务
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    #定义Service 的运行type,一般是forking,就是后台运行
    Type=notify
    Environment=LANG=C
    #以下定义systemctl start |stop |reload *.service  的每个执行方法,具体命令#需要写绝对路径
    ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
    ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
    # Send SIGWINCH for graceful stop
    KillSignal=SIGWINCH
    KillMode=mixed
    #创建私有的内存临时空间
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    以下是我自己写的一个java项目,需要他开机自运行的service,systemd会帮我执行我写脚本,shell如下,仅供参考

    #!/bin/bash
    CMD=$1
    
    case $CMD in 
    -start)
    
            nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
            ;;
    -stop)
    
            port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
            sudo kill $port
            ;;
    
    -restart)
    
            port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
            sudo kill $port
            nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
            ;;
    *)
            echo "Usage: shMediaManager.sh -start | -stop | -restart .Or use systemctl start | stop | restart  MediaManager.service "
            ;;
    esac
    

    编辑.service文件,在Exec*下执行脚本,来启动关闭重启服务

    [UNIT]
    Description=Media wanager Service
    After=network.target
    
    [Service]
    Type=forking
    **ExecStart=/home/mobileoa/apps/shMediaManager.sh -start
    ExecReload=/home/mobileoa/apps/shMediaManager.sh -restart
    ExecStop=/home/mobileoa/apps/shMediaManager.sh -stop**
    PrivateTmp=True
    
    [Install]
    WantedBy=multi-user.target
    

    设置开机自起
    systemctl enable MediaManager.service
    会创建一个连接

  • 相关阅读:
    5、视图
    4、数据更新
    3、聚合与排序
    2、查询基础
    1、数据库和SQL
    Day-13:组合查询
    Day-12:创建高级联结
    Day-11:联结表
    Day-10:使用子查询
    Day-9:分组数据
  • 原文地址:https://www.cnblogs.com/jzy996492849/p/6913333.html
Copyright © 2011-2022 走看看