一、systemctl知识简介

从CentOS7 Linux开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了CentOS7以前系统中的service和chkconfig两个命令。
系统服务的脚本也从传统的路径的/etc/init.d(/etc/rc.d/init.d/),改到了/usr/lib/systemd(除此之外还有/etc/systemd/system),需要自启动运行的程序,一般存在这个系统服务目录下,即:/usr/lib/systemd/system目录,每一个服务以“服务名.service”结尾,该文件的内容一般分为3部分:即[Unit]、[Service]和[Install]。

二、systemctl管理的sshd服务配置介绍

下面是系统中sshd服务配置及解释说明。

 cat /usr/lib/systemd/system/sshd.service

 [Unit]   #<==对该系统服务描述及说明模块。
Description=OpenSSH server daemon #<==描述性说明。
Documentation=man:sshd() man:sshd_config() #<==文档列表说明。
After=network.target sshd-keygen.service #<==服务依赖类别说明。
Wants=sshd-keygen.service #<==可选的依赖服务。 [Service] #<==系统服务的运行参数设置模块
Type=notify #<==服务类型,可选有forking、notify、simple等。
EnvironmentFile=/etc/sysconfig/sshd #<==环境变量等的配置文件。
ExecStart=/usr/sbin/sshd -D $OPTIONS #<==服务的启动程序。
ExecReload=/bin/kill -HUP $MAINPID #<==重启程序。
KillMode=process
Restart=on-failure
RestartSec=42s [Install] #<==服务安装的相关设置。
WantedBy=multi-user.target #<==这里为设置多用户级别。可为空格分隔的列表, 表示在使用 systemctl enable 启用此单元时, 将会在对应的目录设置对应文件的软连接。
更多说明,可参考systemd.unit、system.service文档,此不细述,都掌握了意义也不大,可以写出启动脚本即可。

三、根据上面的服务配置创建nginx启动脚本

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

 [Unit]
Description=The nginx HTTP and reverse proxy server #描述说明;
After=network.target remote-fs.target nss-lookup.target #服务依赖类别说明; [Service]
Type=forking #服务类型,可选有forking、notify、simple等;
ExecStartPre=/application/nginx/sbin/nginx -t #启动前检查配置文件是否正确;
ExecStart=/application/nginx/sbin/nginx #启动nginx
ExecReload=/bin/kill -s HUP $MAINPID #重载reload
ExecStop=/bin/kill -s QUIT $MAINPID #停止服务
PrivateTmp=true #为服务分配独立的空间; [Install]
WantedBy=multi-user.target #多用户级别 说明第一次启动会提示以下报错:
[root@server nginx-1.8.]# systemctl restart nginx.service
Warning: nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. 执行下面的命令重新载入 systemd,扫描新的或有变动的单元即可:
systemctl daemon-reload #重新载入 systemd,扫描新的或有变动的单元

启动nginx:

 [root@lb01 ~]# systemctl daemon-reload
[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# systemctl start nginx
[root@lb01 ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 五 -- :: CST; 7s ago
Process: ExecStart=/application/nginx/sbin/nginx (code=exited, status=/SUCCESS)
Process: ExecStartPre=/application/nginx/sbin/nginx -t (code=exited, status=/SUCCESS)
Main PID: (nginx)
CGroup: /system.slice/nginx.service
├─ nginx: master process /application/nginx/sbin/nginx
└─ nginx: worker process 9月 :: lb01 systemd[]: Starting The nginx HTTP and reverse proxy server...
9月 :: lb01 nginx[]: nginx: the configuration file /application/nginx-1.8./conf/nginx.conf syntax is ok
9月 :: lb01 nginx[]: nginx: configuration file /application/nginx-1.8./conf/nginx.conf test is successful
9月 :: lb01 systemd[]: Started The nginx HTTP and reverse proxy server.
[root@lb01 ~]# systemctl restart nginx
[root@lb01 ~]# systemctl reload nginx
[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# systemctl restart nginx
[root@lb01 ~]# systemctl enable nginx
[root@lb01 ~]# systemctl list-unit-files|grep nginx
nginx.service enabled

CentOS7.5下开发systemctl管理的自定义Nginx启动服务程序的更多相关文章

  1. centos7.0下的 systemctl 用法

    参考链接: http://man.linuxde.net/systemctl

  2. 手动编译安装Libvirt之后利用systemctl管理libvirtd服务

    因为要给特殊的虚拟机关联文件指定selinux标签,而默认的Libvirt没有这个功能,所以需要修改LIbvirt源代码,重新编译安装Libvirt,而手动编译安装的LIbvirt,没有办法使用sys ...

  3. Centos7 环境下开机 自启动服务(service) 设置的改变 (命令systemctl 和 chkconfig用法区别比较)

    参考文章:  <Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)> http://blog.csdn.net/kenhins/article/ ...

  4. [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改

    备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...

  5. Centos7下创建和管理用户

    centos服务管理主要命令是systemctl,centos7的服务不再放在/etc/init.d/下;而放在/usr/lib/systemd/system下,centos7系统中systemctl ...

  6. 在VS下使用 GitFlow管理项目开发

    在VS下使用 GitFlow管理项目开发 1.右键将你的解决方案添加到源代码管理,如果你的VS没有安装git,会提示安装,安装完成之后,在团队资源管理可以看到如下界面 (图一) 2.安装gitflow ...

  7. Centos7下的systemctl命令与service和chkconfig

    博主使用的操作系统是最新的CentOS 7,所以可能和网上一些老的博文有一定出入,那是因为版本更新的原因. 这里写图片描述1 service service命令用于对系统服务进行管理,比如启动(sta ...

  8. CentOS7 安装tomcat为系统服务器 Systemctl管理Tomcat,并设置开机启动

    本文转载:http://blog.chinaunix.net/uid-24648266-id-5729891.html CentOS7开始,从/etc/init.d脚本改为了systemctl管理服务 ...

  9. centos7把编译安装的服务通过systemctl管理

    nginx编译安装的目录是/usr/local/nginx nginx配置文件是/usr/local/nginx/conf/nginx.conf systemctl管理的服务文件在/usr/lib/s ...

随机推荐

  1. C 语言实例 - 矩阵转换

    C 语言实例 - 矩阵转换 C 语言实例 C 语言实例 矩阵转换. 实例 #include <stdio.h> int main() { ][], transpose[][], r, c, ...

  2. log4j.xml中Filter的用法

    前言 log4j中常用的Filter分为四种:DenyAllFilter.LevelMatchFilter.LevelRangeFilter.StringMatchFilter. 当appender匹 ...

  3. Codeforces 1137D(技巧)

    一开始写的第一步让0和1一起走然后第二步再让0走会挂最后一个点--然后探索一下觉得主要问题在于我模拟的一步一步地走.如果这样的话9 2这个数据会使第17步他俩就碰在final点了,而实际上我们想要的效 ...

  4. ssrs 小技巧

    1. 使用 RowNumber() 增加行号 =RowNumber("DataSet1") 2. 单双行 变色 =iif(RowNumber(Nothing) Mod 2, &qu ...

  5. c/c++学习系列之putchar、getchar、puts、gets的运用

    如果您只想取得使用者输入的字元,則可以使用getchar(),它直接取得使用者輸入的字元并传回,如果只想要输出一個字元,則也可以直接使用putchar(),以下是个简单的例子: #include &l ...

  6. 547 Friend Circles 朋友圈

    班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递性.如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友.所谓的朋友圈,是指所有朋友的集合.给 ...

  7. python学习之IO:

    输入输出兼程IO操作,有同步(速度不匹配时四等)和异步(轮询和消息通知,复杂而高效) 一 文件操作函数: 文件打开:f=open("文件路径“,“操作类型 r/rb/w/a”,"编 ...

  8. 03.Javascript——入门一些方法记录之Map和Set

    JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实际上Number ...

  9. 下面给出了四种设计模式的作用: 外观(F

    下面给出了四种设计模式的作用: 外观(Fa?ade :为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用: 装饰(Decorate):当不能采用生成子类的方法进行扩充时,动 ...

  10. [转]Creating Mailing Labels in SQL Server Reporting Services (rdlc 数据1页 2竖排 显示)

    本文转自:http://blogs.wrox.com/article/creating-mailing-labels-in-sql-server-reporting-services/ Most wo ...