[Ericsson AB]

appup

FILE

appup

FILE SUMMARY

Application upgrade file.

DESCRIPTION

The application upgrade file defines how an application is upgraded in a running system.

This file is used by the functions in systools when generating a release upgrade file (relup).

FILE SYNTAX

The application upgrade file should be called Application.appup where Application is the name of the application. The file should be located in the ebin directory for the application.

The .appup file contains one single Erlang term, which defines the instructions used to upgrade the application. The file has the following syntax:

{Vsn,
  [{UpFromVsn, Instructions}, ...],
  [{DownToVsn, Instructions}, ...]}.
    

RELEASE UPGRADE INSTRUCTIONS

Release upgrade instructions are interpreted by the release handler when an upgrade or downgrade is made. For more information about release handling, refer to SASL User's Guide.

High-level instructions

{update, Module, Change, PrePurge, PostPurge, [Mod]}
{update, Module, Timeout, Change, PrePurge, PostPurge, [Mod]}
{update, Module, ModType, Timeout, Change, PrePurge, PostPurge, [Mod]}
  Module = atom()
  ModType = static | dynamic
  Timeout = int()>0 | default | infinity
  Change = soft | {advanced,Extra}
  PrePurge = PostPurge = soft_purge | brutal_purge
  Mod = atom()

{load_module, Module, PrePurge, PostPurge, [Mod]}

{add_module, Module}

{remove_application, Application}

{add_application, Application}

{restart_application, Application}
    

Low-level instructions

{load_object_code, {Lib, LibVsn, [Module]}}
  Lib = atom()
  LibVsn = string()
  Module = atom()

point_of_no_return

{load, {Module, PrePurge, PostPurge}}
  PrePurge = PostPurge = soft_purge | brutal_purge

{remove, {Module, PrePurge, PostPurge}}

{purge, [Module]}

{suspend, [Module | {Module, Timeout}]}
  Timeout = int()>0 | default | infinity

{code_change, [{Module, Extra}]}
{code_change, Mode, [{Module, Extra}]}
  Mode = up | down
  Extra = term()

{resume, [Module]}

{stop, [Module]}

{start, [Module]}

{sync_nodes, Id, [Node]}
{sync_nodes, Id, {M, F, A}}
  Id = term()
  M = F = atom()
  A = [term()]

{apply, {M, F, A}}

restart_new_emulator
    

SEE ALSO

relup(4), release_handler(3), systools(3)

AUTHORS

Gunilla Hugosson - support@erlang.ericsson.se

sasl 1.10.1
Copyright © 1991-2006 Ericsson AB