电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 491|回复: 0

linux服务管理service和systemctl区别与详解

[复制链接]
admin 发表于 2021-12-9 22:14:11 | 显示全部楼层 |阅读模式
linux常用启动服务有3种方式:

1、/目录名/服务名  start,  例如 /etc/init.d/sshd  start  (所有linux版本都可以用这种方式)
2、service 服务名  start     (redhat centos 等大部分linux有service命令,如果没有,可以通过yum install initscripts -y 安装)
3、systemctl start 服务名  (systemctl是从centos7开始才有的,是service的升级,服务启动改为并行启动,速度更快,同时为了向下兼容,在centos7上 仍可以继续使用 service命令)      service和systemctl区别:
         1)在centos6及以前,服务启动的脚本一般放在/etc/init.d下,启动服务使用 /etc/init.d/服务名 start 或者 service 服务名 start(service命令其实就是去/etc/init.d目录下寻找服务名脚本进行启动,换句话说,service命令只能管理 /etc/init.d目录下的服务)
          2)从centos7开始,增加了systemctl命令,并且服务一般放在/usr/lib/systemd/system(系统服务,开机不需要登录就可以运行的服务)或者/usr/lib/systemd/user(用户服务,开机后需要用户登录之后才能运行的服务)目录下,另外还有一个目录需要理解(/etc/systemd/system/)这个是开机自启动服务,如果我们想让某个服务开机自启动,执行 systemctl enable 服务名之后,就会将/usr/lib/systemd/system下的服务快捷方式复制到 /etc/systemd/system下,当然有时我们也可以直接在 /etc/systemd/system下手工建一个服务启动脚本,也就实现了这个服务自启动。systemctl命令只能管理以上三个目录下的服务)
           3)centos7 下为了向下兼容,service命令仍然是保留的,但service命令只能管理/etc/init.d下的服务,centos7以后服务大部分默认都不在这个目录下了,所以service 在centos7以后虽然命令还在,但是service能管理的服务就少了。
           
linux 管理服务自启动的方式:
          和上面对应的,Centos6及以前,管理服务自启动使用命令 chkconfig ( chkconfig --list,chkconfig --add 服务名,chkconfig --del 服务名,chkconfig 服务名 on/off,chkconfig --level35 httpd on)  但是 chkconfig只能管理 /etc/init.d下的服务;
          从centos7之后,服务默认安装到 /user/lib/systemd/system或 /user/lib/systemd/user下,管理服务启动使用命令 systemctl (systemctl  list-unit-files,systemctl enable/disable 服务名,systemctl is-enable 服务名),执行 systemctl enable 服务名,其实就是将服务启动脚本放到 /etc/systemd/system下。

您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-12-29 00:50 , Processed in 0.116548 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表