一:概述


   CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d/的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同。

   CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下,并且每一个服务以 .service 结尾。


Centos 系统服务脚本目录:

/usr/lib/systemd

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

/usr/lib/systemd/system


2. 开始配置

2.1 环境 ===>

   1. 添加自启动服务为:uwsgi

   2. 自启动脚本以经写好

   3. 本人将开机自启动的脚本放在 /etc/init.d/目录下,并加执行权限


2.2  配置 ===>

    每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行uwsgi项目,具体内容如下:

[root@tsingserver ~]# cd /usr/lib/systemd/system
[root@tsingserver system]# vim uwsgid.service
[Unit]
Description=uwsgid
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/uwsgid start
ExecReload=/etc/init.d/uwsgid restart
ExecStop=/etc/init.d/uwsgid stop
PrivateTmp=true
   
[Install]
WantedBy=multi-user.target

 服务脚本按照上面编写完成后,以 754 的权限保存在/usr/lib/systemd/system目录下

[root@tsingserver system]# chmod 754 uwsgid.service


  配置文件解释如下:

  [Unit]             ===>     服务的说明

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

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

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

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

--------------------------------------------------------------------------------

3. 设置开机自启动


 systemctl enable uwsgid.service


4. 其他命令

  以下以httpd服务为例

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on               systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off  systemctl disable httpd.service
检查服务状态 service httpd status

 systemctl status httpd.service 

         <== 服务详细信息

 systemctl is-active httpd.service 

         <== 仅显示是否 Active

显示所有已启动的服务 chkconfig --list  systemctl list-units --type=service
启动某服务 service httpd start  systemctl start httpd.service
停止某服务 service httpd stop  systemctl stop httpd.service
重启某服务 service httpd restart  systemctl 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://blog.csdn.net/yuanguozhengjust/article/details/38019923

                 http://www.centoscn.com/CentOS/config/2015/0507/5374.html