• 【linux操作】systemctl


    一、systemctl是什么??

     systemctl是RHEL7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。而CentOS 7继承了RHEL 7的这一新特性,从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。

      systemctl的使用使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅度提高了系统服务的运行效率,变得简单而易用了许多。

    二、systemctl的使用方法

    启动一个服务  systemctl start nginx.service

    关闭一个服务  systemctl stop nginx.service

    重启一个服务  systemctl restart nginx.service

    显示一个服务的状态     systemctl status nginx.service

    在开机时启动一个服务  systemctl enable nginx.service

    在开机时禁用一个服务  systemctl disable nginx.service

    查看服务是否开机启动  systemctl is_enable nginx.service

    要使用systemctl来进行统一管理的话,先做一些准备工作:

    CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,最好还是存在系统服务里面,即:/usr/lib/systemd/system目录下,每一个服务以.service结尾,一般会分为3部分:[Unit][Service][Install]

    Nginx之nginx.service文件[自定义]

     1 [Unit]
     2 Description=nginx
     3 After=network.target
     4 [Service]
     5 Type=forking
     6 PIDFile=/usr/local/nginx/logs/nginx.pid
     7 ExecStart=/usr/local/nginx/sbin/nginx
     8 ExecReload=/usr/local/nginx/sbin/nginx -s reload
     9 ExecStop=/usr/local/nginx/sbin/nginx -s stop
    10 PrivateTmp=true
    11 [Install]
    12 WantedBy=multi-user.target

    php之php.service文件[自定义]

     1 [Unit]
     2 Description=php
     3 After=network.target
     4 [Service]
     5 Type=forking
     6 ExecStart=/usr/local/php/sbin/php-fpm
     7 ExecStop=/bin/pkill -9 php-fpm
     8 PrivateTmp=true
     9 [Install]
    10 WantedBy=multi-user.target

    MySQL之mysql.service文件[自定义]

     1 [Unit]
     2 Description=MySQL Community Server
     3 After=network.target
     4 After=syslog.target
     5 [Install]
     6 WantedBy=multi-user.target
     7 Alias=mysql.service
     8 [Service]
     9 User=mysql
    10 Group=mysql
    11 #systemctl status就是根据pid来判断服务的运行状态的
    12 PIDFile=/var/run/mysqld/mysqld.pid
    13 # 以root权限来启动程序
    14 PermissionsStartOnly=true
    15 # 设置程序启动前的必要操作。例如初始化相关目录等等
    16 ExecStartPre=/usr/bin/mysql-systemd-start pre
    17 # 启动服务
    18 ExecStart=/usr/bin/mysqld_safe
    19 # Don't signal startup success before a ping works
    20 ExecStartPost=/usr/bin/mysql-systemd-start post
    21 # Give up if ping don't get an answer
    22 TimeoutSec=600
    23 #Restart配置可以在进程被kill掉之后,让systemctl产生新的进程,避免服务挂掉
    24 Restart=always
    25 PrivateTmp=false
  • 相关阅读:
    寒假了
    【MFC】浏览器中快速打开常用工具
    【转】MFC隐藏进程自身(任务管理器不可见,wSysCheck等工具可见)
    【原】DIY属于自己的鼠标侧键
    coco2dx 3.4final 使用scale9sprite
    linux挂载新硬盘
    关于c语言中的结构体使用偏移量求值问题
    Linux的网卡由eth0变成了eth1,如何修复
    oracle归档管理
    exsi上虚拟因硬盘不足无法启动
  • 原文地址:https://www.cnblogs.com/liwuming/p/9095487.html
Copyright © 2020-2023  润新知