Reference

rc_service(3)

functions to query OpenRC services

NAME

rc_service_add, rc_service_delete, rc_service_daemon_set, rc_service_description, rc_service_exists, rc_service_in_runlevel, rc_service_mark, rc_service_extra_commands, rc_service_plugable, rc_service_resolve, rc_service_schedule_start, rc_services_scheduled_by, rc_service_schedule_clear, rc_service_state, rc_service_started_daemon, rc_service_value_get, rc_service_value_set, rc_services_in_runlevel, rc_services_in_state, rc_services_scheduled, rc_service_daemons_crashed – functions to query OpenRC services

LIBRARY

Run Command library (librc, -lrc)

SYNOPSIS

#include <rc.h>

bool Fn rc_service_add const char *runlevel const char *service

bool Fn rc_service_delete const char *runlevel const char *service

bool Fo rc_service_daemon_set
const char *service const char *exec const char *name const char *pidfile bool started);

char * Fo rc_service_description
const char *service const char *option);

bool Fn rc_service_exists const char *service

bool Fn rc_service_in_runlevel const char *service const char *runlevel

bool Fn rc_service_mark const char *service RC_SERVICE state

RC_STRINGLIST * Fn rc_service_extra_commands const char *service

bool Fn rc_service_plugable const char *service

char * rc_service_resolve const char *service

bool Fo rc_service_schedule_start
const char *service const char *service_to_start);

RC_STRINGLIST * Fn rc_services_scheduled_by const char *service

bool Fn rc_service_schedule_clear const char *service

RC_SERVICE Fn rc_service_state const char *service

bool Fo rc_service_started_daemon
const char *service const char *exec int indx);

char * Fn rc_service_value_get const char *service const char *option

bool Fo rc_service_value_set
const char *service const char *option const char *value);

RC_STRINGLIST * Fn rc_services_in_runlevel const char *runlevel

RC_STRINGLIST * Fn rc_services_in_state RC_SERVICE state

RC_STRINGLIST * Fn rc_services_scheduled const char *service

bool Fn rc_service_daemons_crashed const char *service

DESCRIPTION

These functions provide a means of querying OpenRC services to find out the state of each one, to start and stop it, and any other functions related to it.

Most functions should be self descriptive as to what they do and what they return based on names and arguments.

rc_service_add() adds the service to the runlevel.

rc_service_delete() deletes the service from the runlevel.

rc_service_daemon_set() saves the arguments in the service state data so that rc_service_daemons_crashed() can check to see if they are still running or not.

rc_service_description() returns the description variable of the service. If option is not null then we return the description_$option variable instead.

rc_service_exists() returns true if the service exists, otherwise false.

rc_service_in_runlevel() returns true if the service is in the runlevel, otherwise false.

rc_service_mark() puts the service into the given state. If the state is RC_SERVICE_STOPPED then all data associated with the service is lost. rc_service_extra_commands() returns a list of extra commands the service supports beyond the default ones. See openrc-run for default commands.

rc_service_plugable() returns true if the service is allowed to be plugged by rc.conf. Default is true.

rc_service_resolve() resolves service to the full path of service that was started, or would be started.

When service starts, it starts service_to_start afterwards as directed by rc_service_schedule_start(). rc_services_scheduled() returns a list of services that will be started when service starts. rc_service_schedule_clear() clears these scheduled services for service.

rc_service_state(returns, the, state, of) service. The return value is a bitmask, where more than one state can apply.

rc_service_started_daemon() checks to see if service started exec using start-stop-daemon. If indx is greater than zero, then it must also be the nth daemon started by service. rc_service_value_set() saves the value under the name option. rc_service_value_get() returns the value of the saved option.

rc_services_in_runlevel() returns a list of services in runlevel. If runlevel is not specified, then it returns a list of all available services.

rc_services_in_state() returns a list of all the services in state.

IMPLEMENTATION NOTES

Each function that returns char * returns a malloced NULL terminated string that should be freed when done.

Each function that returns RC_STRINGLIST * should be freed using rc_stringlist_free() when done.

When a function fails it should either return false or NULL and set errno unless specified otherwise as above.

FILES

/run/openrc normally holds the volatile state data for services on a RAM backed disk.

SEE ALSO

errno(3), malloc(3), free(3) rc_stringlist_free(3), start-stop-daemon(8)

AUTHORS

Roy Marples <[email protected]>

History