一、systemctl
1、centos7下,systemctl可以理解为systemd的一个工具。也可以认为systemctl命令将service和chkconfig命令结合在了一起,它永久性或只在当前会话中启用/禁用服务
2、centos7下所有的安装服务都会在/usr/lib/systemd/system下创建一个对应的service,可以使用命令systemctl list-unit-files查看到
3、systemctl启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接。
4、systemctl list-units --type=service 可以查看当前的服务列表状态
启动一个服务——systemctl start postfix.service
关闭一个服务——systemctl stop postfix.service
重启一个服务:——systemctl restart postfix.service
显示一个服务的状态——systemctl status postfix.service
在开机时启用一个服务——systemctl enable postfix.service
在开机时禁用一个服务——systemctl disable postfix.service
查看服务是否开机启动——systemctl is-enabled postfix.service
二、service和chkconfig
1、利用yum,rqm安装的服务,启动命令都会自动放在init.d下面,并且接受service、chkconfig管理
2、区别
chkconfig 设置是当前不生效,linux重启后才生效。即配置开机自启动
service 设置是即时生效,linux关机重启后设置失效
3、命令执行流程
service命令:直接去调用/etc/rc.d/init/下httpd启动脚本,脚本里封装了很多函数比如start、stop、restart等 ,这些函数是去调用真正的服务管理程序的,那些程序是编译好的二进制程序。
chkconfig设置开机自启动:根据/rc*.d/下的文件名来启动服务,比如发现有s01httpd文件,它就调用service httpd start 来启动服务,关键是文件名前面的S ,它代表启动的意思,如果将文件名前S改成K,那么这个服务开机时是不会启动的。
S10network -> ../init.d/network
ll /etc/rc.d/rc3.d/S55sshd #s表示start,s55表示开机启动的时候是第55个开启的服务
添加一个服务到chkconfig的管理中 chkconfig --add postgresql-9.4
删除一个服务到chkconfig的管理中 chkconfig --del postgresql-9.4
将一个服务添加开机自启动chkconfig telnet on
将一个服务取消开机自启动chkconfig telnet off
查看chkconfig管理的服务 chkconfig --list-----运行级别是2345的时候开机自启动