Linux服务器,服务管理–systemctl命令详解,设置开机自启动。
syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了。Centos6及以前是service命令。
systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
任务 | 旧指令 | 新指令 |
使某服务自动启动 | chkconfig --level 3 httpd on | systemctl enable httpd.service |
使某服务不自动启动 | chkconfig --level 3 httpd off systemctl disable httpd.service | |
检查服务状态 | service httpd status | systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active) |
显示所有已启动的服务 | chkconfig --list | systemctl list-units --type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
【1】syetemctl
我们以mysqld服务为例,yum安装完mysql默认服务名为mysqld.service
启动mysqld服务
systemctl start mysqld.service
设置开机自启动
systemctl enable mysqld.service
停止开机自启动
systemctl disable mysqld.service
查看服务当前状态
systemctl status mysqld.service
重新启动某服务
systemctl restart mysqld.service
查看所有已启动的服务
systemctl list -units --type=service
有时我们需要关闭SElinux:修改/etc/selinux/config文件中的SELINUX=”” 为 disabled,然后重启
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
【2】service
我们以mysqld服务为例,yum安装完mysql默认服务名为mysqld.service。chkconfig
调用的服务是在/etc/init.d
下面的东,而这些服务都是在启动过程中搞的。/etc/init.d是/etc/rc.d/init.d
的软链接
启动mysqld服务
service mysqld start
设置开机自启动
这里需要注意哦,需要/etc/rc.d/init.d/mysqld
存在,不然不生效。
# 添加服务开机启动
chkconfig --add mysqld
# 设置权限
chmod 755 /etc/rc.d/init.d/mysqld
# 设置开机启动
chkconfig mysqld on
这里需要注意,你的服务脚本里面需要有如下配置:
# chkconfig: 2345 95 5
# description: start mysqld service
说明:95是启动优先级,5是停止优先级,优先级范围是0-100,数字越大,优先级越低
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
停止开机自启动
chkconfig --level 345 mysqld off
查看服务当前状态
service mysqld status
重新启动某服务
service mysqld restart
查看所有已启动的服务
chkconfig --list