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. LinkButton( 按钮)

    一. 加载方式 //class 加载方式<a href="###" class="easyui-linkbutton">按钮</a> / ...

  2. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  3. 调用有道翻译API

    前两天朋友说起NASA开放了数据API,今儿突然想起从来没用过外部提供的API,然而简单用得多的貌似是有道词典API,就像试试,本来觉得应该挺简单的,用urllib模块很快就实现了. 不过测试时才发现 ...

  4. Servlet 技术全总结 (已完成,不定期增加内容)

    Servlet是独立于平台和协议的服务器端的java应用程序,处理请求的信息并将其发送到客户端. Servlet的客户端可以提出请求并动态获得响应. Servlet动态生成web页面,担当浏览器或其他 ...

  5. C/C++中的浮点数运算

    代码: #include <iostream> #include <cstdio> #include <cfloat> using namespace std; i ...

  6. Mysql 索引的基础(上)

    要理解Mysql 中索引是如何工作的,最简单的方法是去看一看书的"索引部分":如果想在一本书中找到某个特定的主题,一般先看书的"索引",找到对应的页码. 在My ...

  7. nginx 配置文件解析(一)

    nginx.conf user nginx; # nginx服务的运行用户 worker_processes ; # 启动进程数,通常设置成和CPU的数量相等 error_log /var/log/n ...

  8. 表单控件之select

    一.表单控件之表单 1.依次获取表单里的所有控件: for (i = 0; i < document.getElementById("formName").length; i ...

  9. jquery1.9学习笔记 之选择器(基本元素三)

    标签选择器("element") 描述: 选择所有与给出标签名相匹配的元素. 同功能的JS原生方法:getElementByTagName() 例子:  查找每个div元素. &l ...

  10. Jetty开发(2)

    部署web应用 配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用.在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则: exa ...