The majority of Veritas Volume Manager utilities use a common set of exit codes, which can be used by shell scripts or other types of programs to react to specific problems detected by the utilities. The number for each distinct exit code is described below.
Exit Code 0 The utility is not reporting any error through the exit code.
Exit Code 1 Some command line arguments to the utility were invalid.
Exit Code 2 A syntax error occurred in a command or description, or a specified record name is too long or contains invalid characters. This code is returned only by utilities that implement a command or description language. This code may also be returned for errors in search patterns.
Exit Code 3 The volume daemon does not appear to be running.
Exit Code 4 An unexpected error was encountered while communicating with the volume daemon.
Exit Code 5 An unexpected error was returned by a system call or by the C library. This can also indicate that the utility ran out of memory.
Exit Code 6 The status for a commit was lost because the volume daemon was killed and restarted during the commit of a transaction, but after restart the volume daemon did not know whether the commit succeeded or failed.
Exit Code 7 The utility encountered an error that it should not have encountered. This generally implies a condition that the utility should have tested for but did not, or a condition that results from the volume daemon returning a value that did not make sense.
Exit Code 8 The time required to complete a transaction exceeded 60 seconds, causing the transaction locks to be lost. As most utilities reattempt the transaction at least once if a timeout occurs, this usually implies that a transaction timed out two or more times.
Exit Code 9 No disk group could be identified for an operation. This results either from naming a disk group that does not exist, or from supplying names on a command line that are in different disk groups or in multiple disk groups.
Exit Code 10 A change made to the database by another process caused the utility to stop. This code is also returned by a usage-type-dependent utility if it is given a record that is associated with a different usage type. If this situation occurs when the usage-type-dependent utility is called from a switchout utility, then the database was changed after the switchout utility determined the proper usage type to invoke.
Exit Code 11 A requested subdisk, plex, or volume record was not found in the configuration database. This may also mean that a record was an inappropriate type.
Exit Code 12 A name used to create a new configuration record matches the name of an existing record.
Exit Code 13 A subdisk, plex, or volume is locked against concurrent access. This code is used for inter-transaction locks associated with usage type utilities. The code is also used for the dissociated plex or subdisk lock convention, which writes a non-blank string to the tutil field in a plex or subdisk structure to indicate that the record is being used.
Exit Code 14 No usage type could be determined for a utility that requires a usage type.
Exit Code 15 An unknown or invalid usage type was specified.
Exit Code 16 A plex or subdisk is associated, but the operation requires a dissociated record.
Exit Code 17 A plex or subdisk is dissociated, but the operation requires an associated record. This code can also be used to indicate that a subdisk or plex is not associated with a specific plex or volume.
Exit Code 18 A plex or subdisk was not dissociated because it was the last record associated with a volume or plex.
Exit Code 19 Association of a plex or subdisk would surpass the maximum number that can be associated to a volume or plex.
Exit Code 20 A specified operation is invalid within the parameters specified. For example, this code is returned when an attempt is made to split a subdisk on a striped plex, or to use a split size that is greater than the size of the plex.
Exit Code 21 An I/O error was encountered that caused the utility to abort an operation.
Exit Code 22 A volume involved in an operation did not have any associated plexes, although at least one was required.
Exit Code 23 A plex involved in an operation did not have any associated subdisks, although at least one was required.
Exit Code 24 A volume could not be started by the vxvol start operation, because the configuration of the volume and its plexes prevented the operation.
Exit Code 25 A specified volume was already started.
Exit Code 26 A specified volume was not started. For example, this code is returned by the vxvol stop operation if the operation is given a volume that is not started.
Exit Code 27 A volume or plex involved in an operation is in the detached state, thus preventing a successful operation.
Exit Code 28 A volume or plex involved in an operation is in the disabled state, thus preventing a successful operation.
Exit Code 29 A volume or plex involved in an operation is in the enabled state, thus preventing a successful operation.
Exit Code 30 An unknown error condition was encountered. This code may be used, for example, when the volume daemon returns an unrecognized error number.
Exit Code 31 An operation failed because a volume device was open or mounted, or because a subdisk was associated with an open or mounted volume or plex.
Exit Code 32 A problem occurred with multipath coordination.
Exit Code 33 An object was already reserved for use by the operating system.
Exit Code 35 An error occurred while communicating with a remote host.
Exit Code 39 An error occurred because the offset or length of a VxVM object is not an integral multiple of the alignment value for the disk group.
Exit Code 65 An array-related API failed.
Exit Code 66 An array-specific guideline was violated.
Exit Code 67 Inconsistent configuration copies are present in a disk group. This may indicate a serial split brain condition.
Exit Code 68 FastResync is not enabled on a volume.
Exit Code 69 A volume has a bad Data Change Object (DCO).
Exit Code 70 A snapshot volume is invalid.
Exit Code 71 A Replicated Volume Group (RVG) has not been started.
Exit codes greater than 32 are reserved for use by usage types. Codes greater than 64 are reserved for use by specific utilities.
I have started unixadminschool.com ( aka gurkulindia.com) in 2009 as my own personal reference blog, and later sometime i have realized that my leanings might be helpful for other unixadmins if I manage my knowledge-base in more user friendly format. And the result is today's' unixadminschool.com.
You can connect me at - https://www.linkedin.com/in/unixadminschool/