$ 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
通常有两种情况需要重启:
libc
(更确切地说,glibc
)已升级。有一种机制可以在不重新启动的情况下重新加载内核(How can I upgrade my server's kernel without rebooting?)。有了
glibc
,最大的问题是init。可以重新启动 init(请参阅在不重新启动系统的情况下重新启动 init)。对于普通用户,两者都不推荐,需要重启。
显然,存在第三种情况:
dbus
已升级。dbus-daemon
显然无法重新启动(根据我对这篇 LWN 文章的讨论的理解)。而且由于很多事情都依赖于 DBus...实际上,这取决于您要完成的任务:
如果您执行了
apt-get dist-upgrade
一个新内核,并且您想要激活它,则需要重新启动。如果有新版本的 FireFox 出现,您显然不会。
在这两个极端之间是 50 种灰色阴影:
;-)
我想不出任何绝对需要重新启动的情况。
真的,你可以让 Ubuntu 无限期地运行。它可能会收到恶意软件(因为未应用内核和 libc 更新)并且它可能会恐慌或崩溃......但是避免那些实际上会为你做的事情是什么?
考虑到生活的复杂性,可能更有必要忽略计算机的持续需求,并以其他方式维持自己的生活。就像呼吸、进食、爱……生活。
但即便如此,它们是绝对必要的吗?你在这个层面上的存在是否属于必要的绝对定义?老实说,我不知道。有点奇怪的问题要问。
对于给这篇文章投了反对票的两个大笑话剧透者和随后的人,
这个问题是不完整的,或者至少是开放式的。当你抛出诸如necessary之类的词时,你需要给出一个上下文。
许多答案已经假定OP 意味着非常可取(在技术意义上),因此发布了适合上下文的答案,例如避免被黑客攻击或在计算机崩溃时必要的必要答案。他们是很好的答案。添加另一个并不是真的有必要。
但是他们说假设是所有混乱之母(或者类似的东西)所以我把它剥离到绝对必要。如果您坚持使用 10.10 的旧副本,时间和空间将继续滚动,就像他们的习惯一样。
你会注意到我不推荐那个职位。
实际上,我今天早些时候遇到的情况证明了这一点。有时,在进行更改后系统中会遗留一些残留物。例如,我有一个用户
/dev/dsp
尽管已被添加到适当的组,但仍无法访问。第一个访问它的用户在它上面放了一把锁。然而,即使在杀死该用户之后,锁仍然存在,第二个用户无法访问它。但是,重启后,两个用户可以同时使用/dev/dsp
而不会发生任何冲突。重新启动会释放任何可能阻止更改正常生效的残留物。这个问题应该作为主要基于意见的问题真正结束。
事实上,这取决于更新的内容、您的系统对开放 Internet 的暴露程度,以及您拥有/需要运行的系统服务。
简单地安装新版本的软件包不会导致相关服务和应用程序重新启动。例如,如果您在为它安装更新包时运行 Firefox,那么当您切换回它时,您将在浏览器中收到通知,需要在安装更新后重新启动它。同样,当应用更新时,内核本身也需要“重新启动”。因为内核是硬件之上的最低级别,所以您需要重新启动系统,才能加载新内核。对于其他服务,无需重启即可重启。Unity更新或环境服务使用的底层库,将需要您注销并重新登录,以重新启动它们。对于系统服务,可以在应用更新后手动重新启动它们,但如果您尝试使用系统,自动重新启动可能会造成很大的破坏。
绝对确定某项操作是否必要的唯一方法是了解更改是什么,以及不执行该操作的风险是什么。与对您可能永远不会直接遇到的其他事情进行简单更改相比,安全修复显然需要更突然的行动。您的计算机与 Internet 的连接越直接,风险也越大。您必须考虑所有变量,并决定是现在重新启动还是稍后在安装更新时重新启动。
一台正在运行的机器,并且在进行更新/升级时是严格的?可能永远不会(但请继续阅读)。Linux 系统的设置方式是在更新系统后需要重新启动才能激活新功能(即读取内核已更改;对 apache、mysql 的更改只需要重新启动服务)你可以始终保持系统处于的当前状态。
现在,如果您想要激活这些新功能,最简单的方法就是重新启动。但是,尽管如此,您还是继续在这台机器上工作,并在下周末或之后的周末重新启动它。或者下一个圣诞节。它聪明吗?也许不吧。但是没有人阻止你这样做。如果服务器尚未重新启动,系统足够聪明,不会接受下一次更新。
对我来说,唯一需要重启的原因是在第一次安装之后或在需要单用户的情况下进行维护时(想想分区、修复硬盘错误之类的事情)或者当一些白痴运行著名的 fork 炸弹时(尽管可以修复)来自系统本身)。
对于所有其他重新启动的发生由管理员决定。我不能称之为“必要”。
首先,我很欣赏这个问题,因为它永远是最新的。
其他答案是正确的,而且非常详细——这就是我做空的原因。
在某些情况下需要重新启动,例如安装新内核后。
在某些情况下建议这样做,例如在安装新桌面之后。
在大多数情况下,例如安装或升级软件后不需要重新启动。
每当您有疑问时,我建议您重新启动,这样您就安全了。
安装包
debian-goodies
:并运行命令
您将看到一个服务列表,现在您可以选择:
或者