+86 13541016684Mon. - Fri. 10:00-22:00

Linux Systemd入门

Linux Systemd入门

Linux Systemd入门

随着业务的不断发展,各种学习机会也在不断增多。今天学习了Redhat7企业版,整理作成Systemd相关文章与大家共享。

何为Systemd

Systemd是linux下,进行启动处理,系统管理的一种init软件。 linux-init.d

Linux的启动处理

Linux的启动大致分为以下4个阶段进行。

  • 接通电源以后,启动BIOS。
  • 从BIOS加载引导程序。
  • 引导程序启动linux内核。
  • Linux内核启动init程序(PID 1)

该init程序负责管理linux启动,之前使用的是Sysvinit,但近几年被以Ubuntu等采用的Upstart所取代。而且Fedora 15,CentOS 7,Red Hat Enterprise Linux 7采用的都是Systemd。

Systemd特征

1.不是一个shell脚本。Sysvinit的处理全部被写成shell脚本。因为与服务相关的动作被写在单一的脚本中进行处理,而不能进行细化。

Systemd的话,服务不是写成一个的脚本,而是作为配置文件,以Unit为单位进行管理。因此各项处理可进行细化,和单独有效地运行。而且还可 以明确各个处理的依赖关系。甚至这些细化也可以并行运行。例如,像A处理后,由B和C并行处理这样的极其细致的设定也是可以实现的。

systemd 2.可灵活地执行进程的启动。不仅是在linux系统启动时,而且也可以设置各种阀值启动进程。例如定时器,插座通信检测,文件系统挂载等。根据系统构成的变化也可以自动改变系统。例如,检测到新的磁盘设备时,就启动特定程序等。

3.非PID而是通过cgroup管理进程。Sysvinit的话,服务是通过PID进行管理的。而Systemd则是通过cgroup进行管理的。若是PID的情况下,进程达到2次分歧,就直接断开父进程和子进程的关系。cgroup的话,即使发生多回分歧,也可以进行管理。

但是,cgroup是linux内核的功能。Linux以外是不能使用的,这也是Systemd的限制,只有在linux内核上才能运行。

4.Systemd的历史Systemd是以Lennart Poettering和Kay Sievers为中心开发的。2010年3月发行最初的版本之后,搭载在2011年发行的Fedora 15上。

fedora152012年发行的Red Hat Forum 2012,Red Hat Enterprise Linux 7都声明采用了Systemd。 而且,2014年12月发行的Centos7已从Sysvinit变更为systemd。

后话

现在,包括Fedora、CentOS、RedHat Enterprise Linux,openSUSE和SUSE Linux Enterprise Server、Oracle Linux、CoreOS、Arch Linux等将systemd作为默认的init系统。而且Debian下期版本8(jessie)也要采用Systemd,尽管有Systemd反对派 的反对,但是Systemd已成为一种标准。