/* * rc-misc.h * This is private to us and not for user consumption */ /* * Copyright (c) 2007-2015 The OpenRC Authors. * See the Authors file at the top-level directory of this distribution and * https://github.com/OpenRC/openrc/blob/master/AUTHORS * * This file is part of OpenRC. It is subject to the license terms in * the LICENSE file found in the top-level directory of this * distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE * This file may not be copied, modified, propagated, or distributed * except according to the terms contained in the LICENSE file. */ #ifndef __RC_MISC_H__ #define __RC_MISC_H__ #include #include #include #include #include #include #include "helpers.h" #define RC_LEVEL_BOOT "boot" #define RC_LEVEL_DEFAULT "default" #define RC_DEPTREE_CACHE RC_SVCDIR "/deptree" #define RC_DEPTREE_SKEWED RC_SVCDIR "/clock-skewed" #define RC_KRUNLEVEL RC_SVCDIR "/krunlevel" #define RC_STARTING RC_SVCDIR "/rc.starting" #define RC_STOPPING RC_SVCDIR "/rc.stopping" #define RC_SVCDIR_STARTING RC_SVCDIR "/starting" #define RC_SVCDIR_INACTIVE RC_SVCDIR "/inactive" #define RC_SVCDIR_STARTED RC_SVCDIR "/started" #define RC_SVCDIR_COLDPLUGGED RC_SVCDIR "/coldplugged" _unused static bool exists(const char *pathname) { struct stat buf; return (stat(pathname, &buf) == 0); } _unused static bool existss(const char *pathname) { struct stat buf; return (stat(pathname, &buf) == 0 && buf.st_size != 0); } char *rc_conf_value(const char *var); bool rc_conf_yesno(const char *var); void env_filter(void); void env_config(void); int signal_setup(int sig, void (*handler)(int)); int svc_lock(const char *); int svc_unlock(const char *, int); pid_t exec_service(const char *, const char *); /* * Check whether path is writable or not, * this also works properly with read-only filesystems */ int is_writable(const char *); #define service_start(service) exec_service(service, "start"); #define service_stop(service) exec_service(service, "stop"); int parse_mode(mode_t *, char *); char *detect_prefix(void); char *get_systype(void); char *detect_container(void); char *detect_vm(void); #endif