CentOS 7 上systemctl 的用法

Posted Qiao_Zhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 上systemctl 的用法相关的知识,希望对你有一定的参考价值。

  我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体。

 

systemctl is-enabled iptables.service
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

注:*代表某个服务的名字,如http的服务名为httpd

 

例如在CentOS 7 上安装http

[[email protected] ~]# yum -y install httpd
启动服务(等同于service httpd start)
systemctl start httpd.service
停止服务(等同于service httpd stop)
systemctl stop httpd.service
重启服务(等同于service httpd restart)
systemctl restart httpd.service
查看服务是否运行(等同于service httpd status)
systemctl status httpd.service
开机自启动服务(等同于chkconfig httpd on)
systemctl enable httpd.service
开机时禁用服务(等同于chkconfig httpd on)
systemctl disable httpd.service
查看服务是否开机启动 (等同于chkconfig --list)

 

注意:

  原服务都安装在/usr/lib/systemd/system/目录下,当我们使用systemctl添加一项服务开机启动的时候,linux帮我们在/etc/systemd/system/multi-user.target.wants/目录下面创建了对应服务的软连接,所以开机启动,当我们设置服务开机不启动,软连接会从/etc/systemd/system/multi-user.target.wants/下面移除对应的软连接:

(1)查看/usr/lib/systemd/system/  系统原有的所有服务(有好多服务)

[[email protected]_0_12_centos ~]# ls /usr/lib/systemd/system/
acpid.service
arp-ethers.service
atd.service
auditd.service
[email protected]
basic.target
basic.target.wants
blk-availability.service
bluetooth.target
brandbot.path
brandbot.service
[email protected]
[email protected]
..........

 

(2)查看mysqld服务并且到/etc/systemd/system/multi-user.target.wants/目录下查看:

[[email protected]_0_12_centos ~]# ls /usr/lib/systemd/system |grep mysqld  #原服务目录下存在mysqld服务
mysqld.service
[[email protected]_0_12_centos ~]# ls /etc/systemd/system/multi-user.target.wants/ |grep    
mysql                                       #开机启动目录下没有mysqld服务 
[[email protected]_0_12_centos ~]# systemctl is-enabled mysqld.service      #mysqld开机不启动
disabled

 

(3)设置mysql服务开机启动并查看目录

[[email protected]_0_12_centos ~]# systemctl enable mysqld.service  #设置mysql服务开机启动
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/syste
m/mysqld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service
to /usr/lib/systemd/system/mysqld.service.
[[email protected]_0_12_centos ~]# ll /etc/systemd/system/multi-user.target.wants/ |grep
mysql                                  #查看开机启动目录下mysqld.service的软连接
lrwxrwxrwx  1 root root 38 Apr  6 15:37 mysqld.service -> /usr/lib/systemd/syste
m/mysqld.service
[[email protected]_0_12_centos ~]# ll /usr/lib/systemd/system |grep mysqld  #原服务目录下查看文件
-rw-r--r--  1 root root 1073 Dec  9 16:11 mysqld.service

 

以上是关于CentOS 7 上systemctl 的用法的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 上systemctl 的用法

CentOS 7上利用systemctl添加自定义系统服务

在CentOS7上使用systemctl配置tomcat

centos7.0下的 systemctl 用法

CentOS 7中Nginx1.9.5编译安装教程systemctl启动

centos7 中 systemd systemctl管理服务的命令