Petreley's column: Why you should not treat Linux like Windows

The rapid growth of Linux in the server market will no doubt mean that people who are primarily familiar with Windows will need to learn how to administer Linux servers. Please accept some friendly advice: Don't treat Linux like you do Windows.

Most Windows troubleshooting sessions go like this. First, reboot. If that doesn't fix the problem, try reinstalling or upgrading one or more drivers and then reboot again. If that still doesn't work, reinstall or upgrade the application that is giving you trouble and reboot again. If that doesn't work, reinstall everything. Start with Windows, add the latest Windows fix pack, install the latest drivers, and then reinstall all your applications and their fix packs. Configure everything again.

Although this works for Windows, it is probably the worst approach for Linux. First, you should never reboot Linux as the first step to solve a problem. Outside of the obvious reasons, such as upgrading the kernel, adding memory, and changing hardware, the only reason you might ever want to reboot Linux is if you are running processes that won't die because they are hung in an I/O state. This usually happens only when a piece of hardware dies and a driver gets stuck trying to make the hardware work.

Otherwise, Linux is very robust and can run for years without a reboot. The LinuxWorld Web server is based on Red Hat Inc. Linux 5.1, and as of this writing it has been running for 477 days without a reboot -- the entire time LinuxWorld has been online.

This is true in spite of the fact that LinuxWorld made a number of changes to the server since it was first fired up. For example, they added PHP and the MySQL database as part of a redesign to the LinuxWorld Web site. The Apache Web server was upgraded. Disk full errors led to some corrupted forum configuration files, which required significant repairs to the forum software. None of these important changes to the system required a reboot.

You especially do not want to reboot to attempt to solve problems if you are inheriting a Linux system that was configured by someone else. A sloppy administrator may have left the machine in a state where some critical services are started manually, others automatically. When you reboot the server, you'll have the additional task of discovering why some services aren't running (or why unwanted services are) and then deciding how best to start and stop them. You'll eventually want to fix these problems, but why unnecessarily complicate your current task with a reboot?

And whatever you do, don't upgrade software unless you know in advance that the upgrade will solve your problem. In most cases you're better off taking an "if it ain't broke, don't fix it" attitude when it comes to Linux.

Some Linux installation programs replace existing configuration files with new ones, although they usually create backups of the old files. This may force you to merge all your custom configuration settings into the new configuration files just to get back online. Unfortunately, many Linux programs lack a friendly graphical interface for doing this. Fortunately, most Linux configuration files are in text format, so they're easy to edit. But it isn't always easy to use an editor to merge all old custom settings into a brand-new configuration file.

Although there are many good reasons to adopt the "if it ain't broke, don't fix it" attitude, there is also a bad one: annoying version conflicts with the most commonly used shared library, glibc.

Fortunately, Linux Standard Base should make most glibc version conflicts a thing of the past. But until Linux Standard Base is finished and widely adopted, think of glibc version problems as the equivalent of DLL hell for Linux. In general, Linux isn't nearly as vulnerable as Windows. And if you know what you're doing, you can work around all library conflicts. But if you don't know what you're doing, a reckless upgrade of one package may get you into a situation where you'll want to upgrade your whole Linux distribution to solve the problem.

"Reboot and reinstall" may sound like a simple two-step process compared to administering a Linux system, but as long as you treat Linux like Linux instead of Windows you should enjoy more uptime and less pain.

Nicholas Petreley is the founding editor of LinuxWorld (www.linuxworld.com) and works with Linux Standard Base. Reach him at nicholas_petreley@infoworld.com.

Join the newsletter!

Error: Please check your email address.

More about ApacheMySQLRed Hat

Show Comments

Market Place