Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.
Endpoint Virtualization Community Blog

Auto-Closing Applications Running from a Layer

Created: 09 Jan 2006 • Updated: 29 Jul 2010 • 5 comments
Jeremy_Hurren's picture
+1 1 Vote
Login to vote

SVS developer Jeremy Hurren tells us how to tune a few settings to help applications shut down gracefully -- especially useful in a virtualized world where "deactivate" does more than simply close an app.

It's possible with SVS to deactivate a layer that is home to an application that is currently running. When you do this (deactivate the layer) the running application, by default, displays an error message that informs you that an application is running and asks if you want to (forcefully) shut it down. If you say "yes", the application process is terminated. This can leave undesirable results such as unsaved documents and icons remaining in the system tray.

You can specify a registry key that will cause the Software Virtualization Agent to automatically (and gracefully) shut down an application when a layer is deactivated. If, for example, you are running Microsoft Word and have made the registry changes noted below, when you attempt to deactivate the Word layer you will be prompted to save any open Word documents before the application is closed. By default, the agent will wait for 30 seconds for a user response before terminating the application. This time out value can be configured.

To configure Software Virtualization Agent to automatically (and gracefully) shut down an application, follow these steps:

Configure the appropriate FSL registry key by using a registry editor to browse to HKEY_LOCAL_MACHINE\SYSTEM\Altiris\FSL\ in your Windows registry.

The FSL folder contains numbered keys that represent each of your virtualized layers.

click to view

Find the key you want to modify by opening each and looking for the name value that matches the name of your layer.

In this example, "Adobe_7" is a key in in folder #1. This is the key we want to modify.

click to view

Avoid keys that end with names ending with "_FSLPEERFSL". In this example, the "2" key has a name attribute of Adobe_7_FSLPEERFSL. Stay away from this one.

So, to add the shutdown functionality, add a DWORD value AutoCloseApps with a data value of 1. Here's how:

click to view

Right-click on folder #1 and select "New" > "DWORD Value" from the flyout menu.

click to view

Rename the new value to AutoCloseApps

click to view

Once you've renamed the value, right-click the new name, select "modify" from the flyout menu, and use the dialog that opens to change the "Value data:" from 0 to 1.

The default timeout amount is 30 seconds, to change this go to FSL folder at HKEY_LOCAL_MACHINE\SYSTEM\Altiris\FSL\ and add DWORD Value AutoCloseTimeout and then modify the value to the number of milliseconds (so a value of 5000 in decimal is 5 seconds) you want your applications to auto close at. This will only affect the applications that have the AutoCloseApps value set.

Comments 5 CommentsJump to latest comment

Dan Manson's picture

Lordjeb - Excellent tips!

I just learned about App-virtualization at the MMS and I've been hacking away at it for days now.

Our development shop uses VM and MS-VS but I foresee application virtualization quickly replacing many of our virtual machines.

I'm working on packaging a COM commercial insurance application that includes Windows Services, COM+ and IIS Virtual roots so I need to update domain\user and pw all over the place. I also expect to become very familiar with the OnEvents in the registry.

Thanks for sharing the knowledge. I'll return the favor when I have some slick scripts for using these events.

Keep up the great work.


Login to vote
Josh Bernson's picture

I use this setting for my iTunes layer and it works quite nicely. iTunes has 3 services. When you tell the layer to deactivate it initiates the service shutdown, but they don’t close fast enough and you get the open process warning. Setting a timeout of 30 seconds works great; no warnings and iTunes closes cleanly (a rare thing indeed)!



Login to vote
timonokinawa's picture

I use login scripts to add/mod reg keys for apps that need this bit of "creative help" and then deploy the package as requested upon reboot. I have several apps that need this. Thanks for the tip again

Login to vote
Jordan's picture

Just an update, we found an error in the article, the reg value AutoCloseTimeout needs to be set globally in the FLS directory instead of in each layer's directory.

Also we clarified that the value for AutoCloseTimeout is in milliseconds so it's easier to type it out as a decimal then Hex--unless you really like hex I guess.

Hopefully these changes should alleviate any problems people were experiencing with this tech tip.

If a forum post solves your problem please flag is as the solution

Login to vote
fbuonvino's picture


This is an italian translation of the article:

Auto-Closing Applications Running from a Layer
Filed under: Software Virtualization Solution Configuration, Registry, Tuning

un grazie a lordjeb, per il suo articolo originale inviato Lunedì 9-01-2006, 09h09

Lo sviluppatore di SVS Jeremy Hurren ci spiega come eseguire dei settaggi per aiutare alcune applicazioni a chiudersi in armonia - cosa particolarmente utile in un ambiente virtualizzato dove la "disattivazione" è più della semplice chiusura di una applicazione.

E' infatti possibile con SVS disttivare un layer che ospita a sua volta una applicazione ancora in attività. Qundo questo è richiesto (disattivazione del layer), l'applicazione in attività, per default, mostrerà un messaggio di errore indicante che una applicazione è in attività e domanderà se si desideri (forzosamente) chiuderla. Se voi risponderete "si" il processo della applicazione verrà immediatamente terminato. Questo potrà tuttavia procurare risultati indesiderati quali documenti non salvati o una icona permanente sul systray.

E' possibile specificare una chiave di registro che conduca il Software Virtualization Agent a chiudere automaticamente (e con grazia) una applicazione quando un layer viene disttivato. Se per esempio avete in attività Microsoft Word ed aveste messo in atto i cambiamenti al Registro di seguito specificati, quando proverete a disattivare il layer Word, sarete invitati a salvare ogni documento attivo prima che la applicazione venga chiusa. Per default l'agente attenderà 30 secondi per una vostra risposta prima di procedere in auomatico alla chiusura della applicazione. Questo tempo di time-out potà essere configurato..

Per configurare il Software Virtualization Agent a chiudere automaticamente (e con grazia) una applicazione, seguite questi passi:

Configurate l'appropriata chiave di registro FSL utilizzando un editor di registro per trovare la voce HKEY_LOCAL_MACHINE\SYSTEM\Altiris\FSL\ nel Registro Windows.

Il folder FSL contiene delle chiavi numerate che rappresentano ognuna un layer virtualizzato.
click to view

Trovate la chiave che desiderate modificare aprendone ognuna e cercandovi il valore "Name" corrispondente al nome del vostro layer.

In questo esempio. "Adobe_7" è una chiave nel folder #1. Questa è la chiave che vogliamo modificare.
click to view

Evitate le chiavi il cui nome termina con "_FSLPEERFSL". In questo esempio la chiave "#2" ha un nome attributo di Adobe_7_FSLPEERFSL. State lontani da questa chiave.

Così, per aggiungere la funzionalità di chiusura, aggiungete il valore di DWORD AutoColseApps attribuendogli il valore (data value) di 1. Ecco come:
click to view

Click-destro sul folder #1 e selezionate "New">"DWORD Value" dal menu a tendina.
click to view

Rinominate il nuovo valore come AutoCloseApps.
click to view

Fatto questo, click-desto sul nuovo nome, selezionate "modify" dal nuovo menu a tendina ed utilizzate il dialogo che si apre per modificare il "value data" da 0 ad 1.

Il valore di default del time-out è di 30 secondi; per modificarlo andate al folder FSL ed alla chiave HKEY_LOCAL_MACHINE\SYSTEM\Altiris\FSL\ ed aggiungete il valore DWORD AutoCloseTimeOut, quindi regolatene il valore al numero di miilisecondi che desiderate per la autochiusura delle applicazioni (ad un valore di 5000msec corrisponderà un tempo di 5sec).
Questo parametro avrà effetto unicamente sulle applicazioni che avranno il valore di AutoCloseApps settato.


Login to vote