Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e50d51ed9f | ||
| 
						 | 
					97a254f599 | ||
| 
						 | 
					1d20aa10e6 | ||
| 
						 | 
					e92e81d9fe | ||
| 
						 | 
					bed1a45192 | ||
| 
						 | 
					34d9dbf1e3 | ||
| 
						 | 
					0287aa6588 | ||
| 
						 | 
					1732c70fb5 | ||
| 
						 | 
					263dde90c2 | ||
| 
						 | 
					422795e2ce | ||
| 
						 | 
					00ad99a292 | ||
| 
						 | 
					f026c2c541 | 
							
								
								
									
										94
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										94
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,89 @@
 | 
			
		||||
commit 97a254f599db622d34a0c1bbd3057d1a7050a468
 | 
			
		||||
Author: Doug Freed <dwfreed@mtu.edu>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    start-stop-daemon: properly handle missing pidfile
 | 
			
		||||
    
 | 
			
		||||
    X-Gentoo-Bug: 639218
 | 
			
		||||
    X-Gentoo-Bug-URL: https://bugs.gentoo.org/639218
 | 
			
		||||
 | 
			
		||||
commit 1d20aa10e65c24f5b2d78a1b0a4ab77de5395aab
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    version 0.34.11
 | 
			
		||||
 | 
			
		||||
commit e92e81d9fec6e07d68692e29839b169cbda19505
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    Update ChangeLog
 | 
			
		||||
 | 
			
		||||
commit bed1a4519295a86f7cc62a79604d73a8ae726103
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    fix FreeBSD build
 | 
			
		||||
    
 | 
			
		||||
    This is for #186.
 | 
			
		||||
 | 
			
		||||
commit 34d9dbf1e305cad9ddde094dbc905e9024e94992
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    version 0.34.10
 | 
			
		||||
 | 
			
		||||
commit 0287aa65884e30f81a92c58d911048b00c878034
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    Update ChangeLog
 | 
			
		||||
 | 
			
		||||
commit 1732c70fb5e6d75c0d104662d06169978c00a5e8
 | 
			
		||||
Author: Doug Freed <dwfreed@mtu.edu>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    rc-schedules: if given nothing to look for, stop
 | 
			
		||||
    
 | 
			
		||||
    This avoids trying to kill everything.
 | 
			
		||||
    
 | 
			
		||||
    X-Gentoo-Bug: 631958
 | 
			
		||||
    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=631958
 | 
			
		||||
 | 
			
		||||
commit 263dde90c28ccd5abb1a60b6ba1f5f8be508164a
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    version 0.34.9
 | 
			
		||||
 | 
			
		||||
commit 422795e2ceb723601e648f4f5cde55141c7e02f4
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    Update ChangeLog
 | 
			
		||||
 | 
			
		||||
commit 00ad99a29223e1567752191e748822710e1042e6
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    s6 supervisor fixes
 | 
			
		||||
    
 | 
			
		||||
    Add the ability to force-kill a service if it does not go down
 | 
			
		||||
    successfully. Also, adjust the default wait time for an s6 service to go
 | 
			
		||||
    down to 60 seconds.
 | 
			
		||||
 | 
			
		||||
commit f026c2c541f43eadbaed51b93379fdf56e1f1d0a
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    version 0.34.8
 | 
			
		||||
 | 
			
		||||
commit 4d20309ffeb5f0211957bbbc5c875dab434b5079
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    Update ChangeLog
 | 
			
		||||
 | 
			
		||||
commit 65439ba023195786e71316f6638b52603e102f60
 | 
			
		||||
Author: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
@@ -1616,11 +1702,3 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
    
 | 
			
		||||
    The openntmpfiles package is designed so that it can be used on systems
 | 
			
		||||
    independently of whether openrc is used.
 | 
			
		||||
 | 
			
		||||
commit 6414c3bc394f86a5d6a5f02c934469e21bbbc923
 | 
			
		||||
Author: Jason Zaman <jason@perfinion.com>
 | 
			
		||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
 | 
			
		||||
    selinux: fix SIGSEGV with invalid contexts
 | 
			
		||||
    
 | 
			
		||||
    Fixes: https://github.com/openrc/openrc/issues/104
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
NAME=		openrc
 | 
			
		||||
VERSION=	0.34.7
 | 
			
		||||
VERSION=	0.34.11
 | 
			
		||||
PKG=		${NAME}-${VERSION}
 | 
			
		||||
 
 | 
			
		||||
@@ -111,9 +111,12 @@ The path to the s6 service directory if you are monitoring this service
 | 
			
		||||
with S6. The default is /var/svc.d/${RC_SVCNAME}.
 | 
			
		||||
.It Ar s6_svwait_options_start
 | 
			
		||||
The options to pass to s6-svwait when starting the service via s6.
 | 
			
		||||
.It Ar s6_force_kill
 | 
			
		||||
Should we force-kill this service if s6_service_timeout_stop expires
 | 
			
		||||
but the service doesn't go down during shutdown? The default is yes.
 | 
			
		||||
.It Ar s6_service_timeout_stop
 | 
			
		||||
The amount of time, in milliseconds, s6-svc should wait for the service
 | 
			
		||||
to go down when stopping the service. The default is 10000.
 | 
			
		||||
to go down when stopping the service. The default is 60000.
 | 
			
		||||
.It Ar start_stop_daemon_args
 | 
			
		||||
List of arguments passed to start-stop-daemon when starting the daemon.
 | 
			
		||||
.It Ar command
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,10 @@ s6_service_path - the path to the s6 service directory. The default is
 | 
			
		||||
s6_svwait_options_start - the options to pass to s6-svwait when starting
 | 
			
		||||
the service. If this is not set, s6-svwait will not be called.
 | 
			
		||||
 | 
			
		||||
s6_force_kill - Should we try to force kill this service if the
 | 
			
		||||
s6_service_timeout_stop timeout expires when shutting down this service?
 | 
			
		||||
The default is yes.
 | 
			
		||||
 | 
			
		||||
s6_service_timeout_stop - the amount of time, in milliseconds, s6-svc
 | 
			
		||||
should wait for a service to go down when stopping.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								sh/s6.sh
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								sh/s6.sh
									
									
									
									
									
								
							@@ -12,6 +12,20 @@
 | 
			
		||||
 | 
			
		||||
[ -z "${s6_service_path}" ] && s6_service_path="/var/svc.d/${RC_SVCNAME}"
 | 
			
		||||
 | 
			
		||||
_s6_force_kill() {
 | 
			
		||||
	local pid
 | 
			
		||||
	s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}"
 | 
			
		||||
	pid="${3%)}"
 | 
			
		||||
	[ -z "${pid}" ] && return 0
 | 
			
		||||
	if kill -0 "${pid}" 2> /dev/null; then
 | 
			
		||||
		ewarn "Sending DOWN & KILL for ${RC_SVCNAME}"
 | 
			
		||||
		s6-svc -dk "${s6_service_link}"
 | 
			
		||||
		sleep 1
 | 
			
		||||
		kill -0 "${pid}" 2>/dev/null && return 1
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
s6_start()
 | 
			
		||||
{
 | 
			
		||||
	if [ ! -d "${s6_service_path}" ]; then
 | 
			
		||||
@@ -41,7 +55,11 @@ s6_stop()
 | 
			
		||||
 fi
 | 
			
		||||
	s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}"
 | 
			
		||||
	ebegin "Stopping ${name:-$RC_SVCNAME}"
 | 
			
		||||
	s6-svc -wD -d -T ${s6_service_timeout_stop:-10000} "${s6_service_link}"
 | 
			
		||||
	s6-svc -d -wD -T ${s6_service_timeout_stop:-60000} "${s6_service_link}"
 | 
			
		||||
	set -- $(s6-svstat "${s6_service_link}")
 | 
			
		||||
	[ "$1" = "up" ] && 
 | 
			
		||||
		yesno "${s6_force_kill:-yes}" &&
 | 
			
		||||
			_s6_force_kill "$@"
 | 
			
		||||
	set -- $(s6-svstat "${s6_service_link}")
 | 
			
		||||
	[ "$1" = "down" ]
 | 
			
		||||
	eend $? "Failed to stop ${name:-$RC_SVCNAME}"
 | 
			
		||||
 
 | 
			
		||||
@@ -307,6 +307,9 @@ int run_stop_schedule(const char *applet,
 | 
			
		||||
	const char *const *p;
 | 
			
		||||
	bool progressed = false;
 | 
			
		||||
 | 
			
		||||
	if (!(pid > 0 || exec || uid || (argv && *argv)))
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	if (exec)
 | 
			
		||||
		einfov("Will stop %s", exec);
 | 
			
		||||
	if (pid > 0)
 | 
			
		||||
 
 | 
			
		||||
@@ -657,8 +657,15 @@ int main(int argc, char **argv)
 | 
			
		||||
			parse_schedule(applet, "0", sig);
 | 
			
		||||
		else
 | 
			
		||||
			parse_schedule(applet, NULL, sig);
 | 
			
		||||
		if (pidfile) {
 | 
			
		||||
			pid = get_pid(applet, pidfile);
 | 
			
		||||
			if (pid == -1)
 | 
			
		||||
				exit(EXIT_FAILURE);
 | 
			
		||||
		} else {
 | 
			
		||||
			pid = 0;
 | 
			
		||||
		}
 | 
			
		||||
		i = run_stop_schedule(applet, exec, (const char *const *)margv,
 | 
			
		||||
		    get_pid(applet, pidfile), uid, test, progress, false);
 | 
			
		||||
		    pid, uid, test, progress, false);
 | 
			
		||||
 | 
			
		||||
		if (i < 0)
 | 
			
		||||
			/* We failed to stop something */
 | 
			
		||||
 
 | 
			
		||||
@@ -159,7 +159,7 @@ static void cleanup(void)
 | 
			
		||||
	free(changeuser);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void re_exec(void)
 | 
			
		||||
static void re_exec_supervisor(void)
 | 
			
		||||
{
 | 
			
		||||
	syslog(LOG_WARNING, "Re-executing for %s", svcname);
 | 
			
		||||
	execlp("supervise-daemon", "supervise-daemon", svcname, "--reexec",
 | 
			
		||||
@@ -180,7 +180,7 @@ static void handle_signal(int sig)
 | 
			
		||||
	/* Restore errno */
 | 
			
		||||
	errno = serrno;
 | 
			
		||||
	if (! exiting)
 | 
			
		||||
		re_exec();
 | 
			
		||||
		re_exec_supervisor();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static char * expand_home(const char *home, const char *path)
 | 
			
		||||
@@ -435,7 +435,9 @@ static void supervisor(char *exec, char **argv)
 | 
			
		||||
	signal_setup_restart(SIGUSR1, handle_signal);
 | 
			
		||||
	signal_setup_restart(SIGUSR2, handle_signal);
 | 
			
		||||
	signal_setup_restart(SIGBUS, handle_signal);
 | 
			
		||||
#ifdef SIGPOLL
 | 
			
		||||
	signal_setup_restart(SIGPOLL, handle_signal);
 | 
			
		||||
#endif
 | 
			
		||||
	signal_setup_restart(SIGPROF, handle_signal);
 | 
			
		||||
	signal_setup_restart(SIGSYS, handle_signal);
 | 
			
		||||
	signal_setup_restart(SIGTRAP, handle_signal);
 | 
			
		||||
@@ -446,7 +448,9 @@ static void supervisor(char *exec, char **argv)
 | 
			
		||||
	signal_setup_restart(SIGEMT, handle_signal);
 | 
			
		||||
#endif
 | 
			
		||||
	signal_setup_restart(SIGIO, handle_signal);
 | 
			
		||||
#ifdef SIGPWR
 | 
			
		||||
	signal_setup_restart(SIGPWR, handle_signal);
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIGUNUSED
 | 
			
		||||
	signal_setup_restart(SIGUNUSED, handle_signal);
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user