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

在CentOS 7上利用systemctl加入自己定义系统服务的更多相关文章

  1. 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/

    在CentOS 7上利用systemctl添加自定义系统服务[日期:2014-07-21] 来源:blog.csdn.net/yuanguozhengjust 作者:yuanguozhengjust ...

  2. CentOS 7上利用systemctl添加自定义系统服务

    Centos 7 之 systemctl CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方 ...

  3. 在CentOS 7上利用systemctl添加自定义系统服务

    每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install],具体内容如下: [Unit]Description=*****After=network.ta ...

  4. CentOS 7 上systemctl 的用法

    我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体. systemctl is-enable ...

  5. CentOS 7上的进程管理

    一些杂乱的基础概念 程序是一种静态的文件,躺在磁盘上.而进程则是将程序运行起来放置于内存中.因此进程就是运行中的程序,是程序运行起来的一个实例.同一个程序可以运行为多个进程/实例. 进程之间有父子关系 ...

  6. 如何在CentOS 7上安装Percona服务器

    在这篇文章中我们将了解关于 Percona 服务器,一个开源的MySQL,MariaDB的替代品.InnoDB的数据库引擎使得Percona 服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比 ...

  7. 在CentOS 7上安装phpMyAdmin

    原文 在CentOS 7上安装phpMyAdmin phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具.虽然已经存在着一些诸如Adminer的轻量级数据库管 ...

  8. centos 7上搭建HDP2.3集群

    centos 7上安装 cat /etc/redhat-release

  9. 如何在CentOS 7上部署Google BBR【搬运、机翻】

    如何在CentOS 7上部署Google BBR 本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 [注:文 ...

随机推荐

  1. sql中的case when

    sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.            例如,下面的语句显示中文年月         select ...

  2. linux od命令

    用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制.十六进制和ASCII码来显示文件.od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Du ...

  3. error BC31019 无法写入输出文件 未指定错误

    今天获取项目最后版本后,编译突然出现错误 error BC31019 无法写入输出文件 "xxx目录" 未指定错误 试着调整当前用户对这个文件的读写权限等各种方法,都未能解决该问题 ...

  4. JavaScript随机排序算法1

    1.对数组循环,每一项与随机的某一项位置调换 <ul id="listOne"></ul> <div id="tempOne"&g ...

  5. javascript "非法值"检验.

    <script type="text/javascript"> function getCoord() { var x = document.getElementByI ...

  6. Codeforces Round #279 (Div. 2)f

    树形最大上升子序列 这里面的上生子序列logn的地方能当模板使  good #include<iostream> #include<string.h> #include< ...

  7. nginx 配置以及常用命令

    windows下安装以及配置nginx http://jingyan.baidu.com/article/f3e34a12a9c1c3f5eb6535d4.html 1)下载地址: http://ng ...

  8. 16--Box2D使用(二、显示物理世界)

    在上一篇文章中我们创建了的一个物理世界,当物理世界中的刚体一个也没有显示出来.为显示物理世界中的物体,我们需要引入GLES-Render(调试Box2D使用).这两个文件可以再 %Cocos_Home ...

  9. mongodb spring

    可参考 http://blog.csdn.net/cuiran/article/details/8287204 我修改后的代码 http://pan.baidu.com/s/1mgJYbaC

  10. python编程中在ubuntu中安装虚拟环境及环境配置

    1.升级python包管理工具pip pip install --upgrade pip 备注:当你想升级一个包的时候 `pip install --upgrade 包名` 2.python虚拟环境安 ...