Answers:
通常在两种情况下通常需要重新启动:
libc
(而是glibc
)已升级。有一种机制可以在不重新启动的情况下重新加载内核(如何在不重新启动的情况下升级服务器的内核?)。使用glibc
,最大的问题是init。可以重新启动init(请参阅在不重新启动系统的情况下重新启动init)。
对于普通用户,不建议这样做,并且必须重新启动。
显然,存在第三种情况:
dbus
已升级。dbus-daemon
显然无法重新启动(从我对LWN文章的讨论中可以了解到)。而且由于很多事情都依赖DBus ...实际上,我今天早些时候的情况证明了这一点。有时,进行更改后,系统中会残留一些剩余的东西。例如,我有一个用户,/dev/dsp
尽管已被添加到适当的组中,但仍然无法访问。第一个访问它的用户已将其锁定。但是,即使杀死了该用户,该锁仍然处于锁定状态,第二个用户无法访问它。但是,重新启动后,两个用户都可以同时使用/dev/dsp
而没有任何冲突。重新启动会释放任何残留的东西,这些残留的东西可能会阻止更改正确生效。
我想不出绝对需要重新启动的任何情况。
确实,您可以使Ubuntu无限期地运行。它可能会感染恶意软件(因为未应用内核和libc更新),并且可能会出现恐慌或崩溃……但是如何避免那些实际上为您做的事情呢?
考虑到生活的复杂性,可能更需要忽略计算机的不断需求,并以其他方式维持自己的生活。喜欢呼吸,饮食,爱...生活。
但是即使那样,它们绝对必要吗?您是否在这架飞机上存在绝对必要性?老实说我不知道。提出一个奇怪的问题。
对于两个对这篇文章以及随后的文章大加赞赏的大玩笑的破坏者,
这个问题是不完整的,或者至少是开放性的。当您抛出必要的单词时,您需要提供上下文。
许多答案已经假定 OP是非常合乎需要的(从技术意义上来说),因此发布的答案适合诸如避免被黑或在计算机崩溃时必不可少的必要上下文之类的上下文。他们是很好的答案。确实没有必要添加另一个。
但是他们说,假设是所有乱糟糟的事情的母亲(或者类似的东西),所以我将其归结为绝对必要。如果您坚持使用10.10的旧版本,那么时空和它们的遗愿一样会不断发展。
您会注意到我不建议该职位。
这个问题实际上应该作为主要基于意见的问题来解决。
事实是,这取决于更新的内容,系统对开放Internet的暴露程度以及您已经/需要运行的系统服务。
仅仅安装软件包的新版本不会导致相关服务和应用程序重新启动。例如,如果您正在运行Firefox,同时为其安装更新的软件包,则当您切换回它时,将在浏览器中通知您,安装更新后,它需要重新启动。同样,在对其应用更新时,内核本身也需要“重新启动”。由于内核是硬件之上的最低级别,因此您确实需要重新引导系统以加载新内核。对于其他服务,可以在不重新启动的情况下重新启动它们。对Unity的更新或环境服务使用的基础库,则需要注销然后重新登录,以重新启动它们。对于系统服务,可以在应用更新后手动将其重新启动,但是如果您尝试使用系统,则自动进行操作可能会造成很大的破坏。
唯一确定是否必须执行某项操作的唯一方法是,了解更改是什么,以及不执行该操作所面临的风险。安全修补程序显然需要比其他事情的简单更改更为突然的动作,而您可能永远不会直接遇到这些更改。您的计算机与Internet的连接越直接,风险就越大。您必须考虑所有变量,并决定是立即更新还是稍后在安装更新时重新启动。
什么时候需要重启Ubuntu系统?
正在运行的计算机,严格来说是在进行更新/升级时?可能永远不会(但请继续阅读)。设置Linux系统的方式是,在更新系统后,需要重新启动才能激活新功能(即读取内核已更改;对Apache的更改,mysql仅要求重新启动服务),可以始终保持系统处于打开状态。
现在,如果要激活这些新功能,最简单的方法是重新启动。但是,尽管如此,我们仍然在乎您继续使用这台计算机,并在下一个周末或之后的下一个周末重新启动它。或下个圣诞节。聪明吗?也许不吧。但是没有人阻止您这样做。如果服务器尚未重新引导,则系统足够智能,无法接受下一次更新。
对我来说,唯一需要重新启动的原因是在首次安装后或需要单个用户的维护(例如分区,修复硬盘错误之类的事情)或某些白痴跑着著名的前叉炸弹(尽管可以修复该问题)时从系统本身)。
对于所有其他重新引导,发生都是由管理员决定的。我不能称其为“必要”。
首先,我很欣赏这个问题,因为它永远是最新的。
其他答案是正确且非常详细的-这就是为什么我做空的原因。
在某些情况下,需要重新启动,例如在安装新内核之后。
在某些情况下(例如在安装新台式机之后),建议您这样做。
在大多数情况下,例如在安装或升级软件后,无需重新启动。
每当您有疑问时,我建议您重新启动,以确保您的安全。
安装软件包debian-goodies
:
sudo apt-get install debian-goodies
并运行命令
sudo checkrestart
您将看到服务列表,现在您可以选择:
要么
$ checkrestart
Found 20 processes using old versions of upgraded files
(15 distinct programs)
(14 distinct packages)
Of these, 12 seem to contain init scripts which can be used to restart them:
The following packages seem to have init scripts that could be used to restart them:
gpm:
3044 /usr/sbin/gpm
rpcbind:
2208 /sbin/rpcbind
bind9:
8463 /usr/sbin/named
openssh-server:
22124 /usr/sbin/sshd
ntp:
4078 /usr/sbin/ntpd
tftpd-hpa:
3417 /usr/sbin/in.tftpd
uptimed:
2704 /usr/sbin/uptimed
cron:
3019 /usr/sbin/cron
postfix:
22145 /usr/lib/postfix/qmgr
8892 /usr/lib/postfix/master
hddtemp:
3174 /usr/sbin/hddtemp
autofs:
2792 /usr/sbin/automount
openbsd-inetd:
3254 /usr/sbin/inetd
These are the init scripts:
service gpm restart
service rpcbind restart
service bind9 restart
service ssh restart
service ntp restart
service tftpd-hpa restart
service uptimed restart
service cron restart
service postfix restart
service hddtemp restart
service autofs restart
service openbsd-inetd restart
These processes do not seem to have an associated init script to restart them:
isc-dhcp-client:
3775 /sbin/dhclient