一、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