Ubuntu 15.04附带的更大变化是从启动到系统化的切换,这是管理启动和系统服务启动的默认设置。
任何人都可以向非技术用户充分解释这对我们有何影响,以及是否会产生影响?为什么重要呢?
Ubuntu 15.04附带的更大变化是从启动到系统化的切换,这是管理启动和系统服务启动的默认设置。
任何人都可以向非技术用户充分解释这对我们有何影响,以及是否会产生影响?为什么重要呢?
Answers:
通过设计,Layman用户不应注意到任何更改。这是一个初始化系统,而不是用户传统上与之交互的系统。它应该完全替代Upstart提供的功能-并做一些额外的事情-但非技术用户只能在出错时看到它。
一直在积极使用和开发Upstart的用户,系统管理员和开发人员是需要解决问题的人员。Ubuntu Wiki上有一个迁移文档,可帮助开发人员转换其初始化脚本,但用户和sysops可以坚持使用14.04(直到2019年受支持)来继续使用Upstart。
改变的理由和理由实际上并非来自Ubuntu。Canonical对Upstart(他们的项目)非常满意,但许多Debian用户希望迁移到现代的init引擎,以在启动时获得更好的并发性,并更好地监视所有服务的功能。
Canonical与Debian一起使用是因为它最简单,而且可能是最好的。他们放弃了一个项目,并没有在上游奋斗。这也使我们与也正在转向systemd的其他发行版(Red Hat,Fedora等)保持一致。更加集中精力,减少重复工作。
tl; dr对于非技术人员,这根本不会影响您。对于Ubuntu,这意味着更少的工作和更好的初始化系统。
任何人都可以向非技术用户充分解释这对我们有何影响,以及是否会产生影响?
从理论上讲,这不应该影响那些不参与系统实际工作的具体细节的非技术性最终用户。在实践中,您将看到很多东西。
这是不完整的清单:
init
+的Linux操作系统用户rc
被systemd 仅向后兼容System 5 的事实所困扰rc
。与新贵公司(甚至大多数其他系统)一样,它声称并提供与System 5 init
及其配置文件没有向后兼容性/etc/inittab
。因此,遵循30年来建议“好吧,您可以将其编辑为/etc/inittab
…” 的人们的建议,或者使用遵循该建议的软件的人们现在拥有的软件并非从头开始。示例:https://unix.stackexchange.com/a/196197/5132
shutdown
shutdown
shutdown now
systemctl rescue
--user
选项的运行命令systemctl
。尚不适用于Ubuntu。upstart和systemd在这方面有很大的不同,Ubuntu 15版仍然使用upstart 每会话init而不是systemd 每用户实例。因此,例如,https://superuser.com/a/860598/38062将不适用。☺正如其他人已经在这里指出的那样,从理论上讲,这不应该影响非技术的最终用户-从理论上讲,理论与实践之间没有区别,但在实践中却有区别。
我认为此处发布的几件事需要澄清:
这是一个初始化系统,而不是用户传统上与之交互的系统。
SysV init和Upstart就是这种情况,而systemd不再是这种情况。传统上,它可以做很多用户交互的事情:
它应该完全取代Upstart提供的功能,并做一些额外的事情
需要澄清两件事-首先是完全取代Upstart:
人们对systemd的问题之一是它不运行SysV初始化脚本。因此,有一个示例无法完全替代Upstart提供的功能。
这是我们可以依靠的30多年,传统上,您编写SysV初始化脚本是为了获得最大的可移植性,而无需重复自己(通过编写相同脚本的多个版本),现在不再是这种情况。
仅使用官方存储库中的软件包时,这应该不是问题,因为以前所有具有SysV初始化脚本或Upstart脚本的软件包都需要在重写脚本之前对其脚本进行重写。
对于碰巧使用任何第三方软件或自定义软件(其初始化脚本是为SysV init或Upstart编写的)的人来说,这只是一个问题,而那些人需要在升级到systemd或更高版本的系统之前,先重写初始化脚本。已安装的新贵(这也是一个选择),或者迁移到不使用systemd的系统)。
有systemd-sysv-generator应该可以自动将SysV初始化脚本转换为systemd脚本,但是存在一些错误以及一长串明显的不兼容性。
现在,第二个澄清-关于一些额外的内容:
那些“一些额外的东西”是systemd是要盖-根据视角的systemd -已经取得的成就,以及什么样的未来将呈现伦纳特·珀特林在2014年GNOME.asia -有以下几种:
因此回到:“这是一个初始化系统,而不是用户传统上与之交互的东西。” -必须指出,init系统只是该列表中的一项。
最后,我想说的最后一件事是:
非技术用户只有在出现错误时才能看到此错误。
哦,真是舒心。:)
对于最终用户(脚本本身除外),最值得注意的更改是启动和停止服务以及使用以下命令:
不再按预期工作。例如,nohup
是POSIX命令,用于确保从会话注销后该进程继续运行。它不再适用于systemd。诸如此类的程序screen
以及tmux
需要以特殊方式调用的程序,否则与它们一起运行的进程将被杀死(而未杀死这些进程通常通常首先是运行screen或tmux的主要原因)。
这不是错误,而是设计选择,因此将来不太可能修复。这就是伦纳特·珀特林说这个问题:
在我看来,对于UNIX来说实际上是很奇怪的,它默认情况下允许任意用户代码在注销后保持不受限制的状态。许多操作系统人士已经讨论了很长时间了,这应该是可能的,但肯定不是默认值,但是到目前为止,没有人敢将开关从默认设置转换为选项。注销后不清理用户会话不仅丑陋而且有些骇人听闻,而且还是安全问题。 现在,systemd 230最终翻转了开关,并最终默认情况下在用户注销时正确清理了所有内容。
有关更多信息,请参见:
screen
screen
systemd-run --user --scope screen
(注意:上面的“ upstart”的行为实际上是除systemd之外的任何东西,这不是特定于upstart的)
start foo
systemctl start foo
stop foo
systemctl stop foo
restart foo
systemctl restart foo
initctl list
systemctl status
(有关此问题超出范围的更多详细信息,请参阅我对Upstart和systemd的优点/缺点的回答。)
在处理日志方面也有很大的不同,因为与Unix传统相反,systemd的日志以自定义格式存储在二进制文件中,因此:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
您需要使用特殊命令来访问日志:
sudo journalctl -u foo
sudo journalctl -u foo -f
最早将Systemd引入Debian,然后引入Ubuntu的过程并非没有争议,并且遭到了广泛的反对,撰写任何以下文章之一的人都知道:
Debian在systemd上的官方立场以及由此引起的争议导致Exodus在2014 年宣告成立,并以Ian Jackson辞职而告终。
Init Freedom, Without-Systemd.org和 Systemd-Free.org计划诞生了,有关Hacker News的讨论很多。