Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49ec9a868f |
5
NEWS.md
5
NEWS.md
@@ -4,11 +4,6 @@ OpenRC NEWS
|
||||
This file will contain a list of notable changes for each release. Note
|
||||
the information in this file is in reverse order.
|
||||
|
||||
## OpenRC 0.47
|
||||
|
||||
This release is primarily an internal cleanup release.
|
||||
The only user-visible difference is that unicode is now on by default.
|
||||
|
||||
## OpenRC 0.46
|
||||
|
||||
The path for the reference file for the swclock service is now
|
||||
|
||||
@@ -85,9 +85,9 @@ _rc_service()
|
||||
else
|
||||
# no option was typed
|
||||
if [[ ${COMP_CWORD} -eq 1 ]]; then # if first word typed
|
||||
# complete for init scripts
|
||||
COMPREPLY=($(for i in $(rc-service --list) ; do \
|
||||
[[ ${i} == "${cur}"* ]] && echo ${i} ; \
|
||||
words="$(rc-service --list | grep ^${cur})" # complete for init scripts
|
||||
COMPREPLY=($(for i in ${words} ; do \
|
||||
[[ ${i} == ${cur}* ]] && echo ${i} ; \
|
||||
done))
|
||||
return 0
|
||||
elif [[ ${COMP_CWORD} -eq 2 ]] && [[ ${prev} != -* ]]; then # if second word typed and we didn't type in a function
|
||||
@@ -105,8 +105,9 @@ _rc_service()
|
||||
fi
|
||||
if [[ ${action} == '--exists' ]] || [[ ${action} == '-e' ]] || \
|
||||
[[ ${action} == '--resolve' ]] || [[ ${action} == '-r' ]]; then
|
||||
COMPREPLY=($(for i in $(rc-service --list) ; do \
|
||||
[[ ${i} == "${cur}"* ]] && echo ${i} ; \
|
||||
words="$(rc-service --list | grep ^${cur})"
|
||||
COMPREPLY=($(for i in ${words} ; do \
|
||||
[[ ${i} == ${cur}* ]] && echo ${i} ; \
|
||||
done))
|
||||
return 0
|
||||
fi
|
||||
|
||||
11
etc/rc.conf
11
etc/rc.conf
@@ -88,8 +88,8 @@
|
||||
# MISC CONFIGURATION VARIABLES
|
||||
# There variables are shared between many init scripts
|
||||
|
||||
# Set unicode to NO to turn off unicode support for keyboards and screens.
|
||||
#unicode="YES"
|
||||
# Set unicode to YES to turn on unicode support for keyboards and screens.
|
||||
#unicode="NO"
|
||||
|
||||
# This is how long fuser should wait for a remote server to respond. The
|
||||
# default is 60 seconds, but it can be adjusted here.
|
||||
@@ -116,13 +116,12 @@
|
||||
|
||||
# Some daemons are started and stopped via start-stop-daemon.
|
||||
# We can set some things on a per service basis, like the nicelevel.
|
||||
# These need to be exported
|
||||
#export SSD_NICELEVEL="0"
|
||||
#SSD_NICELEVEL="0"
|
||||
# Or the ionice level. The format is class[:data] , just like the
|
||||
# --ionice start-stop-daemon parameter.
|
||||
#export SSD_IONICELEVEL="0:0"
|
||||
#SSD_IONICELEVEL="0:0"
|
||||
# Or the OOM score adjustment.
|
||||
#export SSD_OOM_SCORE_ADJ="0"
|
||||
#SSD_OOM_SCORE_ADJ="0"
|
||||
|
||||
# Pass ulimit parameters
|
||||
# If you are using bash in POSIX mode for your shell, note that the
|
||||
|
||||
@@ -42,7 +42,7 @@ start()
|
||||
fi
|
||||
|
||||
local wkeys= kmode="-a" msg="ASCII"
|
||||
if yesno ${unicode:-yes}; then
|
||||
if yesno $unicode; then
|
||||
kmode="-u"
|
||||
msg="UTF-8"
|
||||
fi
|
||||
|
||||
@@ -25,7 +25,7 @@ start()
|
||||
# Save the encoding for use immediately at boot
|
||||
if checkpath -W "$RC_LIBEXECDIR"; then
|
||||
mkdir -p "$RC_LIBEXECDIR"/console
|
||||
if yesno ${unicode:-yes}; then
|
||||
if yesno ${unicode:-${UNICODE}}; then
|
||||
echo "" > "$RC_LIBEXECDIR"/console/unicode
|
||||
else
|
||||
rm -f "$RC_LIBEXECDIR"/console/unicode
|
||||
|
||||
@@ -28,7 +28,7 @@ start()
|
||||
# Set terminal encoding to either ASCII or UNICODE.
|
||||
# See utf-8(7) for more information.
|
||||
local termencoding="%@" termmsg="ASCII"
|
||||
if yesno ${unicode:-yes}; then
|
||||
if yesno ${unicode}; then
|
||||
termencoding="%G"
|
||||
termmsg="UTF-8"
|
||||
fi
|
||||
@@ -43,7 +43,7 @@ start()
|
||||
# Save the encoding for use immediately at boot
|
||||
if checkpath -W "$RC_LIBEXECDIR"; then
|
||||
mkdir -p "$RC_LIBEXECDIR"/console
|
||||
if yesno ${unicode:-yes}; then
|
||||
if yesno ${unicode:-${UNICODE}}; then
|
||||
echo "" > "$RC_LIBEXECDIR"/console/unicode
|
||||
else
|
||||
rm -f "$RC_LIBEXECDIR"/console/unicode
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project('OpenRC', 'c',
|
||||
version : '0.47',
|
||||
version : '0.46',
|
||||
license: 'BSD-2',
|
||||
default_options : [
|
||||
'c_std=c99',
|
||||
|
||||
@@ -17,24 +17,25 @@
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <grp.h>
|
||||
#include <libgen.h>
|
||||
#include <pwd.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "selinux.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
typedef enum {
|
||||
inode_unknown = 0,
|
||||
|
||||
@@ -12,17 +12,20 @@
|
||||
|
||||
#define SYSLOG_NAMES
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <strings.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "helpers.h"
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
*/
|
||||
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
/* Yay for linux and its non liking of POSIX functions.
|
||||
Okay, we could use getfsent but the man page says use getmntent instead
|
||||
@@ -30,7 +30,6 @@
|
||||
#ifdef __linux__
|
||||
# define HAVE_GETMNTENT
|
||||
# include <mntent.h>
|
||||
|
||||
# define ENT mntent
|
||||
# define START_ENT fp = setmntent ("/etc/fstab", "r");
|
||||
# define GET_ENT getmntent (fp)
|
||||
@@ -44,7 +43,6 @@
|
||||
#else
|
||||
# define HAVE_GETFSENT
|
||||
# include <fstab.h>
|
||||
|
||||
# define ENT fstab
|
||||
# define START_ENT
|
||||
# define GET_ENT getfsent ()
|
||||
@@ -60,8 +58,8 @@
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = NULL;
|
||||
|
||||
@@ -10,9 +10,13 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
@@ -10,9 +10,13 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -27,12 +28,11 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = "[signal number]";
|
||||
|
||||
@@ -15,12 +15,16 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
#include <limits.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -673,14 +677,15 @@ ewarn(const char *EINFO_RESTRICT fmt, ...)
|
||||
void
|
||||
ewarnx(const char *EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (fmt && !is_quiet()) {
|
||||
va_start(ap, fmt);
|
||||
elogv(LOG_WARNING, fmt, ap);
|
||||
_ewarnvn(fmt, ap);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
va_end(ap);
|
||||
fprintf(stderr, "\n");
|
||||
retval += fprintf(stderr, "\n");
|
||||
}
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -15,21 +15,10 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "librc.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#if defined(__linux__) || (defined (__FreeBSD_kernel__) && defined(__GLIBC__)) \
|
||||
|| defined(__GNU__)
|
||||
|
||||
@@ -16,22 +16,9 @@
|
||||
*/
|
||||
|
||||
#include <sys/utsname.h>
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "librc.h"
|
||||
#include "helpers.h"
|
||||
#include "misc.h"
|
||||
|
||||
#define GENDEP RC_LIBEXECDIR "/sh/gendepends.sh"
|
||||
|
||||
|
||||
@@ -16,21 +16,11 @@
|
||||
*/
|
||||
|
||||
#include <fnmatch.h>
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "librc.h"
|
||||
#include "helpers.h"
|
||||
#include "misc.h"
|
||||
|
||||
bool
|
||||
rc_yesno(const char *value)
|
||||
|
||||
@@ -15,14 +15,8 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "librc.h"
|
||||
#include "helpers.h"
|
||||
|
||||
RC_STRINGLIST *
|
||||
rc_stringlist_new(void)
|
||||
|
||||
@@ -15,26 +15,9 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <helpers.h>
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <libgen.h>
|
||||
#include <limits.h>
|
||||
#include <regex.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "librc.h"
|
||||
#include "misc.h"
|
||||
#include "rc.h"
|
||||
#include <helpers.h>
|
||||
#ifdef __FreeBSD__
|
||||
# include <sys/sysctl.h>
|
||||
#endif
|
||||
@@ -772,10 +755,8 @@ rc_service_mark(const char *service, const RC_SERVICE state)
|
||||
RC_SVCDIR "/%s/%s",
|
||||
rc_parse_service_state(RC_SERVICE_WASINACTIVE),
|
||||
base);
|
||||
if (symlink(init, was) == -1) {
|
||||
free(init);
|
||||
if (symlink(init, was) == -1)
|
||||
return false;
|
||||
}
|
||||
skip_wasinactive = true;
|
||||
}
|
||||
if (unlink(file) == -1) {
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
|
||||
@@ -10,18 +10,24 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
|
||||
|
||||
@@ -15,14 +15,15 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
#if defined(__DragonFly__) || defined(__FreeBSD__)
|
||||
# include <sys/ucred.h>
|
||||
# include <sys/mount.h>
|
||||
|
||||
# define F_FLAGS f_flags
|
||||
#elif defined(BSD) && !defined(__GNU__)
|
||||
# include <sys/statvfs.h>
|
||||
|
||||
# define statfs statvfs
|
||||
# define F_FLAGS f_flag
|
||||
#elif defined(__linux__) || (defined(__FreeBSD_kernel__) && \
|
||||
@@ -32,19 +33,17 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <regex.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *procmounts = "/proc/mounts";
|
||||
|
||||
@@ -27,16 +27,16 @@
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <utmp.h>
|
||||
|
||||
#ifdef HAVE_SELINUX
|
||||
# include <selinux/selinux.h>
|
||||
#endif
|
||||
|
||||
#include "helpers.h"
|
||||
#include "rc.h"
|
||||
#include "plugin.h"
|
||||
#include "wtmp.h"
|
||||
|
||||
@@ -15,26 +15,28 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <fnmatch.h>
|
||||
#include <getopt.h>
|
||||
#include <libgen.h>
|
||||
#include <limits.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <termios.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#if defined(__linux__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__)) \
|
||||
|| defined(__GNU__)
|
||||
@@ -52,7 +54,6 @@
|
||||
#include "plugin.h"
|
||||
#include "selinux.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#define PREFIX_LOCK RC_SVCDIR "/prefix.lock"
|
||||
|
||||
@@ -108,7 +109,7 @@ static void
|
||||
handle_signal(int sig)
|
||||
{
|
||||
int serrno = errno;
|
||||
const char *signame = NULL;
|
||||
char *signame = NULL;
|
||||
struct winsize ws;
|
||||
|
||||
switch (sig) {
|
||||
@@ -134,19 +135,20 @@ handle_signal(int sig)
|
||||
|
||||
case SIGINT:
|
||||
if (!signame)
|
||||
signame = "SIGINT";
|
||||
xasprintf(&signame, "SIGINT");
|
||||
/* FALLTHROUGH */
|
||||
case SIGTERM:
|
||||
if (!signame)
|
||||
signame = "SIGTERM";
|
||||
xasprintf(&signame, "SIGTERM");
|
||||
/* FALLTHROUGH */
|
||||
case SIGQUIT:
|
||||
if (!signame)
|
||||
signame = "SIGQUIT";
|
||||
xasprintf(&signame, "SIGQUIT");
|
||||
/* Send the signal to our children too */
|
||||
if (service_pid > 0)
|
||||
kill(service_pid, sig);
|
||||
eerror("%s: caught %s, aborting", applet, signame);
|
||||
free(signame);
|
||||
exit(EXIT_FAILURE);
|
||||
/* NOTREACHED */
|
||||
|
||||
|
||||
@@ -12,23 +12,24 @@
|
||||
* This file may not be copied, modified, propagated, or distributed
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <paths.h>
|
||||
#include <pwd.h>
|
||||
#include <signal.h>
|
||||
#include <setjmp.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <utmp.h>
|
||||
#include <utmpx.h>
|
||||
#include <pwd.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <setjmp.h>
|
||||
#include <paths.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#include "broadcast.h"
|
||||
#include "helpers.h"
|
||||
@@ -43,7 +44,11 @@ static sigjmp_buf jbuf;
|
||||
* Alarm handler
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
_noreturn static void handler(int arg _unused)
|
||||
# ifdef __GNUC__
|
||||
static void handler(int arg __attribute__((unused)))
|
||||
# else
|
||||
static void handler(int arg)
|
||||
# endif
|
||||
{
|
||||
siglongjmp(jbuf, 1);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
@@ -27,11 +26,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <sys/types.h>
|
||||
#include <strings.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <utmp.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#include "broadcast.h"
|
||||
#include "einfo.h"
|
||||
@@ -170,13 +167,13 @@ static void sleep_no_interrupt(int seconds)
|
||||
duration = remaining;
|
||||
}
|
||||
|
||||
_noreturn static void stop_shutdown(int sig)
|
||||
static void stop_shutdown(int sig)
|
||||
{
|
||||
(void) sig;
|
||||
unlink(nologin_file);
|
||||
unlink(shutdown_pid);
|
||||
einfo("Shutdown cancelled");
|
||||
exit(0);
|
||||
einfo("Shutdown canceled");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
||||
@@ -17,10 +17,11 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "sysvinit.h"
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
@@ -24,9 +27,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/wait.h>
|
||||
#include <termios.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
@@ -42,9 +42,9 @@
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc-logger.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#define TMPLOG RC_SVCDIR "/rc.log"
|
||||
#define DEFAULTLOG "/var/log/rc.log"
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
#ifndef RC_LOGGER_H
|
||||
#define RC_LOGGER_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
extern pid_t rc_logger_pid;
|
||||
extern int rc_logger_tty;
|
||||
extern bool rc_in_logger;
|
||||
|
||||
@@ -20,21 +20,26 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <dirent.h>
|
||||
#include <ctype.h>
|
||||
#include <getopt.h>
|
||||
#include <libgen.h>
|
||||
#include <limits.h>
|
||||
#include <pwd.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <strings.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -44,9 +49,9 @@
|
||||
#include "rc-logger.h"
|
||||
#include "misc.h"
|
||||
#include "plugin.h"
|
||||
|
||||
#include "version.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *extraopts = NULL;
|
||||
const char getoptstring[] = "a:no:s:S" getoptstring_COMMON;
|
||||
@@ -377,7 +382,7 @@ static void
|
||||
handle_signal(int sig)
|
||||
{
|
||||
int serrno = errno;
|
||||
const char *signame = NULL;
|
||||
char *signame = NULL;
|
||||
pid_t pid;
|
||||
RC_PID *pi;
|
||||
int status = 0;
|
||||
@@ -409,15 +414,15 @@ handle_signal(int sig)
|
||||
|
||||
case SIGINT:
|
||||
if (!signame)
|
||||
signame = "SIGINT";
|
||||
xasprintf(&signame, "SIGINT");
|
||||
/* FALLTHROUGH */
|
||||
case SIGTERM:
|
||||
if (!signame)
|
||||
signame = "SIGTERM";
|
||||
xasprintf(&signame, "SIGTERM");
|
||||
/* FALLTHROUGH */
|
||||
case SIGQUIT:
|
||||
if (!signame)
|
||||
signame = "SIGQUIT";
|
||||
xasprintf(&signame, "SIGQUIT");
|
||||
eerrorx("%s: caught %s, aborting", applet, signame);
|
||||
/* NOTREACHED */
|
||||
case SIGUSR1:
|
||||
@@ -446,12 +451,33 @@ handle_signal(int sig)
|
||||
errno = serrno;
|
||||
}
|
||||
|
||||
static void
|
||||
do_early_hostname(void)
|
||||
{
|
||||
#ifdef __linux__
|
||||
/* Set hostname if available */
|
||||
char *buffer = NULL;
|
||||
size_t len;
|
||||
|
||||
if (rc_getfile(RC_SYSCONFDIR "/hostname", &buffer, &len)) {
|
||||
if (buffer[len - 2] == '\n')
|
||||
buffer[--len - 1] = '\0';
|
||||
if (sethostname(buffer, len)) {
|
||||
/* ignore */;
|
||||
}
|
||||
free(buffer);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
do_sysinit(void)
|
||||
{
|
||||
struct utsname uts;
|
||||
const char *sys;
|
||||
|
||||
do_early_hostname();
|
||||
|
||||
/* exec init-early.sh if it exists
|
||||
* This should just setup the console to use the correct
|
||||
* font. Maybe it should setup the keyboard too? */
|
||||
@@ -690,7 +716,7 @@ do_start_services(const RC_STRINGLIST *start_services, bool parallel)
|
||||
}
|
||||
|
||||
#ifdef RC_DEBUG
|
||||
_noreturn static void
|
||||
static void
|
||||
handle_bad_signal(int sig)
|
||||
{
|
||||
char pid[10];
|
||||
|
||||
@@ -10,11 +10,20 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
|
||||
|
||||
@@ -15,20 +15,27 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <utime.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = NULL;
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -26,8 +24,8 @@
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = NULL;
|
||||
|
||||
@@ -16,21 +16,17 @@
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
enum format_t {
|
||||
FORMAT_DEFAULT,
|
||||
@@ -65,8 +61,8 @@ const char * const longopts_help[] = {
|
||||
longopts_help_COMMON
|
||||
};
|
||||
const char *usagestring = "" \
|
||||
"Usage: rc-status [options] [-f ini] <runlevel>...\n" \
|
||||
" or: rc-status [options] [-f ini] [-a | -c | -l | -m | -r | -s | -u]";
|
||||
"Usage: rc-status [options] -f ini <runlevel>...\n" \
|
||||
" or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]";
|
||||
|
||||
static RC_DEPTREE *deptree;
|
||||
static RC_STRINGLIST *types;
|
||||
@@ -297,7 +293,6 @@ int main(int argc, char **argv)
|
||||
TAILQ_FOREACH(l, levels, entries)
|
||||
printf("%s\n", l->value);
|
||||
goto exit;
|
||||
/* NOTREACHED */
|
||||
case 'm':
|
||||
services = rc_services_in_runlevel(NULL);
|
||||
levels = rc_runlevel_list();
|
||||
@@ -317,9 +312,8 @@ int main(int argc, char **argv)
|
||||
free(s->value);
|
||||
free(s);
|
||||
}
|
||||
print_services(NULL, services, format);
|
||||
print_services(NULL, services, FORMAT_DEFAULT);
|
||||
goto exit;
|
||||
/* NOTREACHED */
|
||||
case 'r':
|
||||
runlevel = rc_runlevel_get();
|
||||
printf("%s\n", runlevel);
|
||||
@@ -330,12 +324,12 @@ int main(int argc, char **argv)
|
||||
TAILQ_FOREACH_SAFE(s, services, entries, t)
|
||||
if (!rc_service_value_get(s->value, "child_pid"))
|
||||
TAILQ_REMOVE(services, s, entries);
|
||||
print_services(NULL, services, format);
|
||||
print_services(NULL, services, FORMAT_DEFAULT);
|
||||
goto exit;
|
||||
/* NOTREACHED */
|
||||
case 's':
|
||||
services = rc_services_in_runlevel(NULL);
|
||||
print_services(NULL, services, format);
|
||||
print_services(NULL, services, FORMAT_DEFAULT);
|
||||
goto exit;
|
||||
/* NOTREACHED */
|
||||
case 'u':
|
||||
@@ -350,7 +344,7 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
}
|
||||
print_services(NULL, services, format);
|
||||
print_services(NULL, services, FORMAT_DEFAULT);
|
||||
goto exit;
|
||||
/* NOTREACHED */
|
||||
|
||||
@@ -450,7 +444,6 @@ int main(int argc, char **argv)
|
||||
* be added to the list
|
||||
*/
|
||||
unsetenv("RC_SVCNAME");
|
||||
|
||||
print_level("Dynamic", "needed/wanted", format);
|
||||
print_services(NULL, nservices, format);
|
||||
print_level("Dynamic", "manual", format);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -28,7 +29,6 @@
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = NULL;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2022-2023 The OpenRC Authors.
|
||||
* Copyright (c) 2022 The OpenRC Authors.
|
||||
* See the Authors file at the top-level directory of this distribution and
|
||||
* https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
|
||||
*
|
||||
@@ -30,12 +30,12 @@
|
||||
#include <errno.h>
|
||||
#include <endian.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "rc.h"
|
||||
#include "einfo.h"
|
||||
#include "helpers.h"
|
||||
#include "_usage.h"
|
||||
@@ -455,7 +455,7 @@ int main(int argc, char **argv)
|
||||
static const char seedrng_prefix[] = "SeedRNG v1 Old+New Prefix";
|
||||
static const char seedrng_failure[] = "SeedRNG v1 No New Seed Failure";
|
||||
int opt, fd, dfd, program_ret = 0;
|
||||
const char *seed_dir = NULL;
|
||||
char *seed_dir = NULL;
|
||||
uint8_t new_seed[MAX_SEED_LEN];
|
||||
size_t new_seed_len;
|
||||
bool new_seed_creditable;
|
||||
@@ -470,7 +470,7 @@ int main(int argc, char **argv)
|
||||
switch (opt) {
|
||||
case LONGOPT_SEED_DIR:
|
||||
if (!seed_dir)
|
||||
seed_dir = optarg;
|
||||
seed_dir = xstrdup(optarg);
|
||||
break;
|
||||
case LONGOPT_SKIP_CREDIT:
|
||||
skip_credit = true;
|
||||
@@ -479,7 +479,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
if (!seed_dir)
|
||||
seed_dir = DEFAULT_SEED_DIR;
|
||||
seed_dir = xstrdup(DEFAULT_SEED_DIR);
|
||||
if (getuid())
|
||||
eerrorx("%s: superuser access is required", applet);
|
||||
umask(0077);
|
||||
|
||||
@@ -10,16 +10,24 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "helpers.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
|
||||
|
||||
@@ -13,13 +13,19 @@
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "version.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#if lint
|
||||
# define _noreturn
|
||||
#endif
|
||||
#if __GNUC__ > 2 || defined(__INTEL_COMPILER)
|
||||
# define _noreturn __attribute__ ((__noreturn__))
|
||||
#else
|
||||
# define _noreturn
|
||||
#endif
|
||||
|
||||
void set_quiet_options(void)
|
||||
{
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define getoptstring_COMMON "ChqVv"
|
||||
|
||||
|
||||
@@ -18,14 +18,6 @@
|
||||
#ifndef __HELPERS_H__
|
||||
#define __HELPERS_H__
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define ERRX fprintf (stderr, "out of memory\n"); exit (1)
|
||||
|
||||
#define UNCONST(a) ((void *)(unsigned long)(const void *)(a))
|
||||
@@ -35,12 +27,10 @@
|
||||
#endif
|
||||
#if __GNUC__ > 2 || defined(__INTEL_COMPILER)
|
||||
# define _dead __attribute__((__noreturn__))
|
||||
# define _noreturn __attribute__ ((__noreturn__))
|
||||
# define _unused __attribute__((__unused__))
|
||||
# define _xasprintf(a, b) __attribute__((__format__(__printf__, a, b)))
|
||||
#else
|
||||
# define _dead
|
||||
# define _noreturn
|
||||
# define _unused
|
||||
# define _xasprintf(a, b)
|
||||
#endif
|
||||
@@ -65,6 +55,10 @@
|
||||
} while (/* CONSTCOND */ 0)
|
||||
#endif
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
_unused static void *xmalloc (size_t size)
|
||||
{
|
||||
void *value = malloc(size);
|
||||
@@ -135,7 +129,7 @@ _unused static bool existss(const char *pathname)
|
||||
/*
|
||||
* This is an OpenRC specific version of the asprintf() function.
|
||||
* We do this to avoid defining the _GNU_SOURCE feature test macro on
|
||||
* glibc systems and to ensure that we have a consistent function across
|
||||
* glibc systems and to insure that we have a consistent function across
|
||||
* platforms. This also allows us to call our xmalloc and xrealloc
|
||||
* functions to handle memory allocation.
|
||||
* this function was originally written by Mike Frysinger.
|
||||
|
||||
@@ -15,21 +15,22 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <sys/file.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#ifdef __linux__
|
||||
# include <sys/sysinfo.h>
|
||||
#endif
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/time.h>
|
||||
#ifdef __linux__
|
||||
# include <sys/sysinfo.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <utime.h>
|
||||
@@ -39,7 +40,6 @@
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "version.h"
|
||||
#include "helpers.h"
|
||||
|
||||
extern char **environ;
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#define __RC_MISC_H__
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
@@ -28,7 +27,6 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "helpers.h"
|
||||
#include "rc.h"
|
||||
|
||||
#define RC_LEVEL_BOOT "boot"
|
||||
#define RC_LEVEL_DEFAULT "default"
|
||||
|
||||
@@ -17,10 +17,12 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <dirent.h>
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -30,8 +32,8 @@
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "plugin.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#define RC_PLUGIN_HOOK "rc_plugin_hook"
|
||||
|
||||
|
||||
@@ -18,11 +18,6 @@
|
||||
#ifndef __LIBRC_PLUGIN_H__
|
||||
#define __LIBRC_PLUGIN_H__
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "rc.h"
|
||||
|
||||
/* A simple flag to say if we're in a plugin process or not.
|
||||
* Mainly used in atexit code. */
|
||||
extern bool rc_in_plugin;
|
||||
|
||||
@@ -30,11 +30,16 @@
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "schedules.h"
|
||||
#include "helpers.h"
|
||||
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
#ifndef __RC_SCHEDULES_H
|
||||
#define __RC_SCHEDULES_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
void free_schedulelist(void);
|
||||
int parse_signal(const char *applet, const char *sig);
|
||||
void parse_schedule(const char *applet, const char *string, int timeout);
|
||||
|
||||
@@ -15,12 +15,14 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <utmp.h>
|
||||
|
||||
#include "wtmp.h"
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#define __RC_WTMP_H__
|
||||
|
||||
#include <utmp.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
void log_wtmp(const char *user, const char *id, pid_t pid, int type,
|
||||
const char *line);
|
||||
|
||||
@@ -10,9 +10,14 @@
|
||||
* except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "pipes.h"
|
||||
|
||||
|
||||
@@ -26,44 +26,47 @@
|
||||
# define _GNU_SOURCE
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/stat.h>
|
||||
#include <termios.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#ifdef __linux__
|
||||
#include <sys/syscall.h> /* For io priority */
|
||||
#include <sys/prctl.h> /* For prctl */
|
||||
#endif
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#ifdef __linux__
|
||||
# include <sys/syscall.h> /* For io priority */
|
||||
# include <sys/prctl.h> /* For prctl */
|
||||
#endif
|
||||
#include <termios.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
# include <security/pam_appl.h>
|
||||
#include <security/pam_appl.h>
|
||||
|
||||
/* We are not supporting authentication conversations */
|
||||
static struct pam_conv conv = { NULL, NULL};
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CAP
|
||||
# include <sys/capability.h>
|
||||
#include <sys/capability.h>
|
||||
#endif
|
||||
|
||||
#include <sched.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "queue.h"
|
||||
#include "rc.h"
|
||||
@@ -204,20 +207,20 @@ handle_signal(int sig)
|
||||
{
|
||||
int status;
|
||||
int serrno = errno;
|
||||
const char *signame = NULL;
|
||||
char *signame = NULL;
|
||||
|
||||
switch (sig) {
|
||||
case SIGINT:
|
||||
if (!signame)
|
||||
signame = "SIGINT";
|
||||
xasprintf(&signame, "SIGINT");
|
||||
/* FALLTHROUGH */
|
||||
case SIGTERM:
|
||||
if (!signame)
|
||||
signame = "SIGTERM";
|
||||
xasprintf(&signame, "SIGTERM");
|
||||
/* FALLTHROUGH */
|
||||
case SIGQUIT:
|
||||
if (!signame)
|
||||
signame = "SIGQUIT";
|
||||
xasprintf(&signame, "SIGQUIT");
|
||||
eerrorx("%s: caught %s, aborting", applet, signame);
|
||||
/* NOTREACHED */
|
||||
|
||||
@@ -236,6 +239,9 @@ handle_signal(int sig)
|
||||
eerror("%s: caught unknown signal %d", applet, sig);
|
||||
}
|
||||
|
||||
/* free signame */
|
||||
free(signame);
|
||||
|
||||
/* Restore errno */
|
||||
errno = serrno;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,20 @@
|
||||
# define _GNU_SOURCE
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/stat.h>
|
||||
#include <termios.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#ifdef __linux__
|
||||
#include <sys/syscall.h> /* For io priority */
|
||||
#include <sys/prctl.h> /* For prctl */
|
||||
#endif
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
@@ -38,17 +52,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include <strings.h>
|
||||
#ifdef __linux__
|
||||
# include <sys/syscall.h> /* For io priority */
|
||||
# include <sys/prctl.h> /* For prctl */
|
||||
#endif
|
||||
#include <syslog.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -208,7 +212,7 @@ static void cleanup(void)
|
||||
free(changeuser);
|
||||
}
|
||||
|
||||
_noreturn static void re_exec_supervisor(void)
|
||||
static void re_exec_supervisor(void)
|
||||
{
|
||||
syslog(LOG_WARNING, "Re-executing for %s", svcname);
|
||||
execlp("supervise-daemon", "supervise-daemon", svcname, "--reexec",
|
||||
@@ -354,7 +358,7 @@ static pid_t exec_command(const char *cmd)
|
||||
return pid;
|
||||
}
|
||||
|
||||
_noreturn static void child_process(char *exec, char **argv)
|
||||
static void child_process(char *exec, char **argv)
|
||||
{
|
||||
RC_STRINGLIST *env_list;
|
||||
RC_STRING *env;
|
||||
@@ -587,7 +591,7 @@ _noreturn static void child_process(char *exec, char **argv)
|
||||
eerrorx("%s: failed to exec `%s': %s", applet, exec,strerror(errno));
|
||||
}
|
||||
|
||||
_noreturn static void supervisor(char *exec, char **argv)
|
||||
static void supervisor(char *exec, char **argv)
|
||||
{
|
||||
FILE *fp;
|
||||
char buf[2048];
|
||||
|
||||
@@ -19,17 +19,20 @@
|
||||
*/
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <utime.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "misc.h"
|
||||
#include "_usage.h"
|
||||
#include "helpers.h"
|
||||
|
||||
|
||||
const char *applet = NULL;
|
||||
@@ -75,12 +78,14 @@ int main(int argc, char **argv)
|
||||
eerrorx("swclock: Reference file was not specified");
|
||||
|
||||
if (sflag) {
|
||||
int fd = open(file, O_WRONLY | O_CREAT, 0644);
|
||||
if (fd == -1)
|
||||
eerrorx("swclock: open: %s", strerror(errno));
|
||||
if (futimens(fd, NULL) == -1)
|
||||
eerrorx("swclock: futimens: %s", strerror(errno));
|
||||
close(fd);
|
||||
if (stat(file, &sb) == -1) {
|
||||
opt = open(file, O_WRONLY | O_CREAT, 0644);
|
||||
if (opt == -1)
|
||||
eerrorx("swclock: open: %s", strerror(errno));
|
||||
close(opt);
|
||||
} else
|
||||
if (utime(file, NULL) == -1)
|
||||
eerrorx("swclock: utime: %s", strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,14 +12,24 @@
|
||||
|
||||
#define SYSLOG_NAMES
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "einfo.h"
|
||||
#include "rc.h"
|
||||
#include "helpers.h"
|
||||
#include "misc.h"
|
||||
|
||||
const char *applet = NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user