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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7和CentOs6添加自定义service的区别相关的知识,希望对你有一定的参考价值。

参考技术A 从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这个目录下,脚本格式如下:

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

CentOS 7.x设置自定义开机启动,添加自定义系统服务

Centos 系统服务脚本目录:



  1. /usr/lib/systemd/  

有系统(system)和用户(user)之分,

如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:


 

  1. /lib/systemd/system/  

反之,用户登录后才能运行的程序,存在用户(user)里

服务以.service结尾。

这边以nginx开机运行为例

1.建立服务文件

[html] view plaincopyprint?技术分享技术分享

 

  1. vim /lib/systemd/system/nginx.service  

[plain] view plaincopyprint?技术分享技术分享

 

  1. [Unit]  

  2. Description=nginx  

  3. After=network.target  

  4.    

  5. [Service]  

  6. Type=forking  

  7. ExecStart=/www/lanmps/init.d/nginx start  

  8. ExecReload=/www/lanmps/init.d/nginx restart  

  9. ExecStop=/www/lanmps/init.d/nginx  stop  

  10. PrivateTmp=true  

  11.    

  12. [Install]  

  13. WantedBy=multi-user.target  


 

[Unit]:服务的说明

Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

2.保存目录

以754的权限保存在目录:

[html] view plaincopyprint?技术分享技术分享

 

  1. /lib/systemd/system  

3.设置开机自启动

 

[html] view plaincopyprint?技术分享技术分享

 

  1. systemctl enable nginx.service  

 

4.其他命令

 

 

任务旧指令新指令
使某服务自动启动chkconfig --level 3 httpd  on             systemctl enable httpd.service
使某服务不自动启动chkconfig --level 3 httpd offsystemctl disable httpd.service
检查服务状态service httpd statussystemctl status httpd.service (服务详细信息) 
systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务chkconfig --listsystemctl list-units --type=service
启动某服务service httpd startsystemctl start httpd.service
停止某服务service httpd stopsystemctl stop httpd.service
重启某服务service httpd restartsystemctl restart httpd.service

 

启动nginx服务

systemctl start nginx.service

设置开机自启动

systemctl enable nginx.service

停止开机自启动

systemctl disable nginx.service

查看服务当前状态

systemctl status nginx.service

重新启动服务

systemctl restart nginx.service

查看所有已启动的服务

systemctl list-units --type=service


本文出自 “梦想照进现实” 博客,请务必保留此出处http://lookingdream.blog.51cto.com/5177800/1846507

以上是关于CentOS7和CentOs6添加自定义service的区别的主要内容,如果未能解决你的问题,请参考以下文章

详解centos6和centos7防火墙

CentOS7添加开机启动服务/脚本(延用CentOS6方法)

Centos7下添加开机自启动服务和脚本

centos6 centos7 配置开机启动服务

Centos 下添加开机自启动服务和脚本

centos7 关闭防护墙