|
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下。
|
|