教程

Linux初始化(初始化)- 系统管理 -Deepin深度系统用户手册

方砖大叔
08月20日 17:18
此文约为3301字,阅读需要8分钟
目录:

1 简介

2 BSD风格

3 SysV风格

4 运行模式分类

5 管理运行模式

6 单用户模式

7 初始化程序

Linux初始化(初始化)- 系统管理 -Deepin深度系统用户手册

简介

初始化英文简称:init(initialization)是 Unix 和 类Unix 系统启动过程中的第一道程序,用来产生其它所有进程的程序。

它以守护进程的方式存在,其进程号为1,它将继续运行直到系统关闭。它是所有其他进程的直接或间接的始源,并会接管孤儿进程。Init由使用硬编码的文件名的内核来启动,如果内核无法启动它,将导致内核崩溃(或“内核恐慌”)。 init的设计,在Unix系统,如System III和System V中,已经偏离了在Research Unix和它的BSD衍生(版)的init所提供的功能。大多数Linux发行版上的用法是与System V有些兼容,但也有一些发行版使用非BSD风格:

Gentoo 是自己定制的

deepin,ubuntu等大部分发行版都采用systemd

BSD风格

BSD init 运行存放于/etc/rc的初始化 shell 脚本,然后启动基于文本模式的终端(getty)或者基于图形界面的终端(窗口系统,如 X)。 这里没有运行模式的问题,因为文件 'rc' 决定了 init 如何执行。

优点: 简单且易于手动编辑。

缺点: 如果第三方软件需要在启动过程执行它自身的初始化脚本,它必须修改已经存在的启动脚本,一旦这种过程中有一个小错误,都将导致系统无法正常启动。

值得注意的是,现代的 BSD 派生系统一直支持使用 rc.local文件的方式,它将在正常启动过程接近最后的时间以子脚本的方式来执行。这样做减少了整个系统无法启动的风险。然后,第三方软件包可以将它们独立的 start/stop 脚本安装到一个本地的 rc.d目录中(通常这是由 ports collection/pkgsrc 完成的)。

FreeBSD 和 NetBSD 现在默认使用 rc.d ,该目录中所有的用户启动脚本,都被分成更小的子脚本,和 SysV 类似。rcorder 通常根据在 rc.d目录中脚本之间的依赖关系来决定脚本的执行顺序。

SysV风格

System V init 检查 /etc/inittab文件中是否含有 initdefault项。 这告诉 init 系统是否有一个默认运行模式。如果没有默认的运行模式,那么用户将进入系统控制台,手动决定进入何种运行模式。

优点: 灵活性强

缺陷: 比较复杂

运行模式(Runlevel)指的是Unix或者Linux等类Unix操作系统下不同的运行模式。

运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。

在深度操作系统中,下列路径对应不同的运行级别。当系统启动时,通过其中的脚本文件来启动相应的服务。

/etc/rc0.d Run__level 0 /etc/rc1.d Run__level 1 /etc/rc2.d Run__level 2 /etc/rc3.d Run__level 3 /etc/rc4.d Run__level 4 /etc/rc5.d Run__level 5 /etc/rc6.d Run__level 6

运行模式分类

深度操作系统的系统运行级别:

0 所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别 1 单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动 2 多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启动 3 多用户模式。允许多用户登录系统,是系统默认的启动级别 4 留给用户自定义的运行级别 5 多用户模式,并且在系统启动后运行 X-Window, 给出一个图形化的登录窗口 6 所有进程被终止,系统重新启动

管理运行模式

查看当前的运行级别

深度操作系统默认运行级别为5.使用runlevel命令可以查看当前的运行模式,终端执行:

runlevel

更改当前运行级别

切换运行级别,执行命令:

init [0123456Ss]

即在 init 命令后跟一个参数,此参数是要切换到的运行级的运行级代号,

注意:init 0 为关机,init 6 为重新启动。

更改默认运行模式

我们需要编辑 /etc/init/rc-sysinit.conf,终端执行:

sudo gedit /etc/init/rc-sysinit.conf
找到下面一行:env DEFAULT_RUNLEVEL=2

更改最后面的数字为你想要更改到的运行级别。

注意:为了系统的正常使用,请不要更改默认运行模式为0、4和6

删除运行模式

如果有需要删除特定的运行模式,直接特定运行模式对应的配置文件即可。

但是如果你不明白这样做的后果,请不要这么做!

单用户模式

Linux系统中,现代的系统引导程序(如 LILO 或者 GRUB),用户可以在初始化过程中最后启动的进程来取代默认的 /sbin/init。 通常是在系统引导程序环境中通过执行 init=/foo/bar 命令。例如,如果执行 init=/bin/bash,启动单用户 root 的 shell 环境,无需用户密码。

正常用户进入单用户模式一般为了重置用户密码。

初始化程序

很多人一直努力地从某些方面改进传统的 init 守护进程,使它变得更完善。下面列出的是一些改进:

  • Upstart:ubuntu主导开发的初始化软件。 
  • Systemd:完全替代init,可并行启动服务,并能减少在shell上的系统开销,为Fedora所使用 SystemStarter:用来替代 launchd — Apple Mac OS X开启进程 
  • Initng:完全代替 init ,可以异步开启进程 
  • Service Management Facility:完全代替/重新设计 
  • Solaris 启动 Solaris 10 runit:跨平台的完全代替 init 可以并行启动服务 
  • Mudur:用 Python 写成的 init 替代品, 可以异步开启进程,Pardus Linux 发行版 
  • eINIT:完全代替 init ,可以异步开启进程,但是完成这个过程可以不使用 shell 脚本
Deepin深度系统用户手册
安装&卸载
如何在桌面新建文件夹/文档
原生安装教程
Deepin深度系统体验安装教程 - 安装&卸载 
Deepin深度系统系统卸载教程
Deepin深度系统安装器
基本操作 新建文件夹/文档、排列方式、设置显示器、热区、壁纸
任务栏图标、切换显示模式、设置任务栏位置、大小、显示隐藏、回收站 
账户管理(创建,更改账户头像,密码,删除账户)
显示设置(单屏设置,多屏设置,自定义设置)
默认程序设置(选中、添加、删除默认程序设置) 
个性化设置(主题、字体设置)
硬件资源设备管理 蓝牙设置(蓝牙开关、蓝牙名称、蓝牙设备)
网络设置(有线,无限,移动,宽带,vpn,代理网络设置)
声音设置(设置扬声器、耳机、音效、高级设置)
日期和时间(设置日期时间、时区、自动同步) 
电源管理(设置显示器休眠、设置锁屏时间)
设备管理(鼠标、键盘、触控板、语言)
系统管理(系统信息、协议、系统更新)
窗口管理器(打开,添加,切换,命名,桌面窗口等)
桌面操作 新手入门(概述、打开,关闭)文件
文件(夹)功能(新建,重命名,复制,压缩,删除等)
磁盘以及选项管理(显示、卸载、弹出磁盘)
常用操作(搜索文件、管理标签、书签、共享、网上邻居、创建链接等)
应用商店(运行,关闭,以及主界面)
应用管理(搜索,下载,安装,更新,升级,卸载)
看图管理(介绍,运行,关闭)
图片操作(复制,打印,删除,旋转,设置为壁纸)
图片管理(时间线、相册管理)
系统管理 启动管理(系统启动流程)
引导系统(系统引导器)
Linux内核(引导系统)
Linux内核错误(引导系统)
Linux初始化(初始化)
开机动画 (初始化)
电源管理(待机,休眠,关机,重启)
电源管理(能耗、节能、亮度,CPU频率,内核等)
用户管理 用户管理(用户类型,添加,修改,删除用户)
群组管理(分组,群组密码,身份切换,常见问题)
文件管理 文件与目录(命名,路径,目录,图形管理,命令管理)
文件与目录权限(文件、目录权限)
管理文件权限(图形、命令、改变文件权限、umask介绍等)
文件系统(本地,网络文件系统)
磁盘管理 挂载(挂载点,FHS,挂载文件系统(图形管理,命令管理))
挂载点管理 - 文件管理
磁盘管理(分区,格式化,维护,写入,配额)
软件管理 源代码与程序 、进程分类、属性、父进程和子进程
配置文件目录,备份、删除、清理残余等
开机启动配置文件管理
快捷方式原理 - Desktop Entry 文件
软件源(文件,修改,同步软件源)
源代码包(修改,获取,编译安装,删除)
包管理命令(dpkg,apt,apt-cache,apt-file,aptitude,dselcet)
系统服务
deepin深度系统常见服务
服务(分类,窗口类型,工作形态的类型,命名,启动方式)
服务管理(chkconfig,service) 
登录管理器(类型,设置,切换登录管理器,登录出错)桌面组件
Shell(命令Shell,图形Shell)桌面组件
常见问题
为什么要自定义多个分区?
为什么不默认开机挂载Win分区
不能挂载特定的win分区?
Linux系统盘分区太小,不够用,问是不是要重装系统?
为什么不把软件全部转换成deb包?
如何删除APT缓存?
如何删除软件配置?
添加PPA?
无法解析或打开软件包的列表或是状态文件
出现Unable to correct problems, you have held broken packages的解决办法
dpkg 被中断,您必须手工运行 sudo dpkg --configure -a解决此问题
下列签名无法进行验证: NO_PUBKEY 06EA41DE4F6C1E86
出现They have been ignored, or old ones used instead的解决办法
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 
如何删除卸载软件包?
为什么不能同时安装一个以上的软件
无法下载bzip2, Hash 校验和不符
在deepin系统中如何设置GTK主题和窗口主题?
在deepin系统中如何安装与设置图标主题? 
在deepin系统中如何安装与设置光标(鼠标)主题?
在deepin系统中如何设置开机音乐? 
在deepin系统中如何安装系统字体?
在deepin系统中如何设置系统语言? 
发表评论
评论列表
共0条
点击加载更多