Does installing security updates through the command line require an immediate reboot? I have some end users that delay installing important OS X updates by clicking 'Remind me tomorrow' on the automatic update prompt, sometimes waiting days or weeks to get updates installed.

To combat this I'm putting together a script to automatically install software updates in the background using the softwareupdate utility.  In testing, after installing a Security update, I got this message:


  You have installed one or more updates that requires that you restart your computer.  Please restart immediately.


Is an reboot required only to activate the updates, or can it be harmful to the OS or other running processes to install updates in the background and not immediately reboot?
Some updates require a restart of the computer, some don't. The reason for a restart can differ - sometimes it's needed to complete the update/installation process, other times it may be simply to ensure that the OS and/or software can utilise the update.

In terms of installing updates in the background, this isn't a problem in itself unless its updating a component/software that's currently running, in which case you need to either close the relevant software or effect a restart for the OS to release the component so it can be updated.

Is what you're trying to do harmful? In most cases not, but in some cases it could be, depending on what the update is doing. 

For critical updates, the better approach would be to:


auto install updates outside of particular hours or 
force the update/restart upon users. 


With the second option, it's common to have a script that prompts the user that an update is going to be installed and the computer will restart in xx minutes - where xx provides plenty of notice (e.g. 15 mins, 30 mins, etc) and gives them enough time to plan around the restart (such as saving work, grabbing a coffee, etc). 

However, what I've done is set this up so the script provides the user an option to 'Restart now' so they have the flexibility to just get it over and done with rather than waiting for xx minutes to pass. The script does not provide a 'postpone' or 'remind me later' option for any critical updates. It is just going to run and the user has been forewarned.