on 4-9-2009 10:07 AM Les Mikesell spake the following:
Scott Silva wrote:
You only *really* need to reboot if/when you update the kernel. Yum/RPM takes care of restarting daemons, etc. during the update process. This is NOT MS-Windows....
Yes, but any program that is already running will keep using the old versions of the program, libraries, open files, etc., retaining the disk space and not sharing the in-memory copy with new instances that start after the update. And since modern programs like to dynamically load library modules as needed while running you can get a strange mix of old/new versions running at once.
Generally, this is not as bad as it seems. In some cases, some updates do restart critical daemons (rpm -hUv glibc... will restart sshd for example). Also, since most critical library updates also imply a similar update for the deamons/programs that use those libraries and since the rpms for the deamon programs do restart the deamon they install/update, in most cases the deamons do get restarted at some point during the update process -- that is, since httpd (Apache) depends on apr and when apr gets a critical update, it is very likely that the httpd program would also be rebuilt as well, so that both rpms are updated in the repo. A 'yum update' will install the new apr rpm, then the new httpd rpm and at that point restart httpd, this picking up the new apr library.
Sometimes you just have to know your system. Like if you update a sendmail milter, you would need to restart sendmail also, but if the rpm developer didn't write that into the %post section you would want to do it yourself.
You have some chance of 'knowing' the server side of things - a lot less about what other users might be running. What should you expect if you have logged in users over freenx, remote X or at the console running (say) firefox through an update? Or other long running applications, especially in languages likely to dynamically load new components.
And in one case, I got kicked off of my ssh connection in mid-update. I'm still not sure what happened there but I had to install yum-utils and run yum-recover-transaction to continue.
I always run my updates through screen. That way disconnects aren't a problem. During major updates I also usually run yum with the --downloadonly option so I can have most of the files local when I am ready.