Linux Systemd And Service Runlevel
接触到Linux有一段时间了,却第一次听说到运行级别这个概念,真是孤陋寡闻啊,是时候恶补一下了。 之所以接触到运行级别这个概念是因为使用chkconfig这个命令的时候发现服务的级别这个概念,从而衍生出系统的运行级别
1、什么是运行级别?
运行级别 0 停机 1 单用户工作状态,root权限,禁止远程登陆 2 多用户没nfs 3 多用户有nfs 4 系统保留 5 gui模式 6 重启
2、运行级别用什么用处? 不同运行级别之间的 差别的在于系统默认起动的服务的不同。
3、怎么查看运行级别 命令runlevel可以显示所处级别 init N(N为0,1,2,3,4,5,6之一)进入其他运行级别 在/etc/rc.d下有7个名为rcN.d的目录,而这里面的文件其实是一个个的软连接,系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件,对于以K开头的系统终止服务,对于以S开头的开启服务
4、什么是服务 服务的就是一系列程序之类的东西,实质是进程。 目录/etc/rc.d/init.d或者是/etc/init.d下有许多服务器脚本程序,一般称为服务(service),也可以使用service命令来操作服务 service XXX start service XXX stop service XXX status service XXX restart
当然如果你能够找到这个脚本那么直接运行这个脚本也等价于操作这个服务。我推荐我自己去读一读init.d下面的这些服务脚本,对于理解linux系统会有一定的帮助
systemd
下面的服务相关的说明都是基于systemd
reference https://access.redhat.com/articles/754933
在我看来,服务是对进程的管理,比如重启一个进程的本质是杀死这个进程,然后重新拉起进程。
配置开机自启:
systemctl enable xxx.service
本质是增加了软连接
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.
取消服务的开机自启:
systemctl disable xxx.service
其本质是移除了指向目标服务文件的软链接 Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.