svcadm(1M)을 검색하려면 섹션에서 1M 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
smf_restore_instance(3scf)
Service Configuration Facility Library Functions smf_enable_instance(3SCF)
NAME
smf_enable_instance, smf_disable_instance, smf_refresh_instance,
smf_restart_instance, smf_maintain_instance, smf_degrade_instance,
smf_restore_instance, smf_enable_instance_synchronous, smf_dis‐
able_instance_synchronous, smf_refresh_instance_synchronous,
smf_restart_instance_synchronous, smf_maintain_instance_synchronous,
smf_degrade_instance_synchronous, smf_restore_instance_synchronous,
smf_get_state, smf_state_to_string, smf_state_from_string - administra‐
tive interface to the Service Configuration Facility
SYNOPSIS
cc [ flag... ] file... -lscf [ library... ]
#include <libscf.h>
int smf_enable_instance(const char *instance, int flags);
int smf_disable_instance(const char *instance, int flags);
int smf_refresh_instance(const char *instance);
int smf_restart_instance(const char *instance);
int smf_maintain_instance(const char *instance, int flags);
int smf_degrade_instance(const char *instance, int flags);
int smf_restore_instance(const char *instance);
int smf_enable_instance_synchronous(const char *instance, int flags);
int smf_disable_instance_synchronous(const char *instance, int flags);
int smf_refresh_instance_synchronous(const char *instance);
int smf_restart_instance_synchronous(const char *instance);
int smf_maintain_instance_synchronous(const char *instance, int flags);
int smf_degrade_instance_synchronous(const char *instance, int flags);
int smf_restore_instance_synchronous(const char *instance);
int smf_set_restarter(const char *fmri, const char *restarter_fmri);
char *smf_get_state(const char *instance);
const char *smf_state_to_string(int32_t state_code);
int32_t smf_state_from_string(const char *state);
DESCRIPTION
These functions provide administrative control over service instances.
Using these functions, an administrative tool can make a request to
enable, disable, refresh, or restart an instance. All calls are asyn‐
chronous. They request an action, but do not wait to see if the action.
They also fail on incomplete instances. For information about incom‐
plete instances, see the scf_instance_is_complete(3SCF) man page.
The smf_enable_instance() function enables the service instance speci‐
fied by instance FMRI. If SMF_TEMPORARY is set in flags, the enabling
of the service instance is a temporary change, lasting only for the
lifetime of the current system instance. The flags argument is set to 0
if no flags are to be used.
The smf_disable_instance() function places the service instance speci‐
fied by instance FMRI in the disabled state and triggers the stop
method (see svc.startd(8) man page). If SMF_TEMPORARY is set in flags,
the disabling of the service instance is a temporary change, lasting
only for the lifetime of the current system instance. The flags argu‐
ment is set to 0 if no flags are to be used.
The smf_refresh_instance() function causes the service instance speci‐
fied by instance FMRI to re-read its configuration information.
The smf_restart_instance() function restarts the service instance spec‐
ified by instance FMRI.
The smf_set_restarter() function sets the delegated restarter for the
given instance. If the instance is online, the instance will be stopped
before the change and restarted after the change is complete. If the
restarter_fmri is NULL, then the restarter customization will be
removed and set back to the file backed restarter. The master restarter
svc.startd is defined with the following:
#define SCF_INSTANCE_STARTD ((const char*)"svc:/system/svc/restarter:default")
The smf_maintain_instance() function moves the service instance speci‐
fied by instance into the maintenance state. If SMF_IMMEDIATE is set in
flags, the instance is moved into maintenance state immediately,
killing any running methods. If SMF_TEMPORARY is set in flags, the
change to maintenance state is a temporary change, lasting only for the
lifetime of the current system instance. The flags argument is set to 0
if no flags are to be used.
The smf_degrade_instance() function moves an online service instance
into the degraded state. This function operates only on instances in
the online state. The flags argument is set to 0 if no flags are to be
used. The only available flag is SMF_IMMEDIATE, which causes the
instance to be moved into the degraded state immediately.
The smf_restore_instance() function brings an instance currently in the
maintenance to the uninitialized state, so that it can be brought back
online. For a service in the degraded state, smf_restore_instance()
brings the specified instance back to the online state. For a service
in the degraded state that is not enabled, smf_restore_instance()
retries the stop method and attempts to move the service to the dis‐
abled state.
The synchronous variants of the above functions each accept the same
arguments and behave in essentially the same manner. The only differ‐
ence is that the synchronous variants do not return until the requested
actions have completed. For a detailed explanation of when actions are
complete, see the scf_actionset_create(3SCF) man page.
The smf_get_state() function returns a pointer to a string containing
the name of the instance's current state. The user is responsible for
freeing this string. Possible state strings are defined as the follow‐
ing:
#define SCF_STATE_STRING_UNINIT ((const char *)"uninitialized")
#define SCF_STATE_STRING_MAINT ((const char *)"maintenance")
#define SCF_STATE_STRING_OFFLINE ((const char *)"offline")
#define SCF_STATE_STRING_DISABLED ((const char *)"disabled")
#define SCF_STATE_STRING_ONLINE ((const char *)"online")
#define SCF_STATE_STRING_DEGRADED ((const char *)"degraded")
The smf_state_to_string() function returns a pointer to an immutable
string containing the state equivalent to state_code. Possible state
strings are defined as above. Possible state codes are defined as fol‐
lowing:
#define SCF_STATE_UNINIT 0x00000001
#define SCF_STATE_MAINT 0x00000002
#define SCF_STATE_OFFLINE 0x00000004
#define SCF_STATE_DISABLED 0x00000008
#define SCF_STATE_ONLINE 0x00000010
#define SCF_STATE_DEGRADED 0x00000020
The smf_state_from_string() function returns the value equivalent to
the string parameter state. Besides the strings defined above, this
function accepts the string "all" as argument. In this case the
returned value is:
#define SCF_STATE_ALL 0x0000003F
RETURN VALUES
Upon successful completion, smf_enable_instance(), smf_dis‐
able_instance(), smf_refresh_instance(), smf_restart_instance(),
smf_maintain_instance(), smf_degrade_instance(), smf_set_restarter(),
and smf_restore_instance() return 0. Otherwise, they return -1.
Upon successful completion, smf_enable_instance_synchronous(), smf_dis‐
able_instance_synchronous(), smf_refresh_instance_synchronous(),
smf_restart_instance_synchronous(), smf_maintain_instance_synchro‐
nous(), smf_degrade_instance_synchronous() return 0. Otherwise, they
return -1.
Upon successful completion, smf_get_state() returns an allocated
string. Otherwise, it returns NULL.
Upon successful completion smf_state_to_string() returns a pointer to a
constant string. Otherwise, it returns NULL.
Upon successful completion smf_state_from_string() returns the macro
value defined for the parameter state. Otherwise it returns -1.
ERRORS
These functions will fail if:
SCF_ERROR_NO_MEMORY
The memory allocation failed.
SCF_ERROR_INVALID_ARGUMENT
The instance FMRI or flags argument is invalid.
SCF_ERROR_NOT_FOUND
The FMRI is valid but there is no matching complete instance found.
SCF_ERROR_CONNECTION_BROKEN
The connection to repository was broken.
SCF_ERROR_NO_RESOURCES
The server has insufficient resources.
The smf_maintain_instance(), smf_refresh_instance(),
smf_restart_instance(), smf_degrade_instance(), smf_set_restarter(),
and smf_restore_instance() functions (including the synchronous vari‐
ants) will fail if:
SCF_ERROR_PERMISSION_DENIED
User does not have proper authorizations. For more information, see
the smf_security(7) man page.
SCF_ERROR_BACKEND_ACCESS
The repository's backend refused access.
SCF_ERROR_BACKEND_READONLY
The repository's backend is read-only.
SCF_ERROR_HANDLE_DESTROYED
An object is bound to a destroyed handle.
SCF_ERROR_NOT_BOUND
The repository handle cannot be bound.
SCF_ERROR_NOT_SET
The instance FMRI cannot be retrieved from the repository.
SCF_ERROR_DELETED
The instance FMRI is deleted.
The smf_restore_instance() and smf_degrade_instance() functions (and
the synchronous variants) will fail if:
SCF_ERROR_CONSTRAINT_VIOLATED
The function is called on an instance in an inappropriate state.
The smf_set_restarter() function will fail if:
SCF_ERROR_CONSTRAINT_VIOLATED
The function is called with a restarter fmri that is not an
instance or is not online.
The scf_error(3SCF) function can be used to retrieve the error value.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe
SEE ALSO
libscf(3LIB), scf_actionset_create(3SCF), scf_error(3SCF),
scf_instance_is_complete(3SCF), attributes(7), smf_security(7),
svc.startd(8)
Oracle Solaris 11.4 20 Jan 2017 smf_enable_instance(3SCF)