zoukankan      html  css  js  c++  java
  • 在CentOS 7上利用systemctl加入自己定义系统服务

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


    以下我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl。


    前提:Node.js环境已配置成功,forever包成功安装,有一个能跑的Node.js程序。


    CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像须要开机不登陆就能执行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system文件夹下

    每个服务以.service结尾,通常会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机执行Node.js项目,详细内容例如以下:

    [Unit]
    Description=xiyoulibapi
    After=network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    PIDFile=/node.js/pid
    ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
    ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
    ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
    PrivateTmp=true
     
    [Install]
    WantedBy=multi-user.target
    

    [Unit]部分主要是对这个服务的说明,内容包含Description和After,Description用于描写叙述服务,After用于描写叙述服务类别

    [Service]部分是服务的关键,是服务的一些详细执行參数的设置,这里Type=forking是后台执行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的详细执行命令,ExecReload为重新启动命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的暂时空间,注意:[Service]部分的启动、重新启动、停止命令所有要求使用绝对路径,使用相对路径则会报错!

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


    服务脚本依照上面编写完毕后,以754的权限保存在/usr/lib/systemd/system文件夹下,这时就能够利用systemctl进行配置了

    首先,使用systemctl start [服务名(也是文件名称)]可測试服务能否够成功执行,假设不能执行则能够使用systemctl status [服务名(也是文件名称)]查看错误信息和其它服务信息,然后依据报错进行改动,直到能够start,假设不放心还能够測试restart和stop命令。

    接着,仅仅要使用systemctl enable xxxxx就能够将所编写的服务加入至开机启动就可以。


    我的脚本编写方法參照了nginx的编写方法,也能够依据其它功能类似的程序。


    这样看来,尽管systemctl比較陌生,可是事实上比init.d那种方式简单不少,并且使用简单,systemctl能简化的操作还有非常多,如今也有不少的资料,看来RHEL/CentOS比其它的Linux发行版还是比較先进的,此次更新也最终舍弃了Linux 2.6内核,不管是速度还是稳定性都提升不少。


    转载请注明出处:http://blog.csdn.net/yuanguozhengjust/article/details/38019923

  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4082718.html
Copyright © 2011-2022 走看看