美文网首页
CentOS7和CentOs6添加自定义service的区别

CentOS7和CentOs6添加自定义service的区别

作者: Minato666 | 来源:发表于2018-10-19 07:15 被阅读0次

    从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。
    我们用添加jboss启动服务来举个例子:
    CentOS6中,我们将JBOSS_HOME/bin/init.d/目录下的jboss-as-domain.sh 拷贝到/etc/rc.d/init.d/,然后执行sudo chkconfig --add jboss-as-domain.sh将jboss-as-domain.sh添加成了系统的service,添加完成之后就可以使用service jboss-as-domain.sh start/stop 这些命令启停服务。
    但是在centos7中完全不同,centos7中service脚本是在/usr/lib/systemd/system这个目录下,脚本格式如下:

    [Unit]
    Description=jbossapi
    
    [Service]
    Type=forking
    PIDFile=/run/jboss-as/jboss-as-domain.pid
    EnvironmentFile=-/etc/jboss-as/jboss-as-domain.conf
    ExecStart=/alidata1/setupTms3/jboss-eap-6.4/bin/init.d/jboss-as-domain.sh start
    ExecReload=/alidata1/setupTms3/jboss-eap-6.4/bin/init.d/jboss-as-domain.sh restart
    ExecStop=/alidata1/setupTms3/jboss-eap-6.4/bin/init.d/jboss-as-domain.sh stop
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    • [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
    • [Service]部分是服务的关键,是服务的一些具体运行参数的设置.
      Type=forking是后台运行的形式,
      EnvironmentFile=设置运行时的环境变量,
      PIDFile为存放PID的文件路径,
      ExecStart为服务的具体运行命令,
      ExecReload为重启命令,
      ExecStop为停止命令,
      PrivateTmp=True表示给服务分配独立的临时空间
      注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
      1
    • [Install]部分是服务安装的相关设置,可设置为多用户的

    添加完该文件之后使用chmod 754 /usr/lib/systemd/system/jboss-as-domain.service添加可执行权限,这样我们的service就添加成功了,可以使用systemctl start/stop jboss-as-domain.service 启动或者停止服务。

    相关文章

      网友评论

          本文标题:CentOS7和CentOs6添加自定义service的区别

          本文链接:https://www.haomeiwen.com/subject/ludszftx.html