Compare commits
	
		
			9 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 422795e2ce | ||
|   | 00ad99a292 | ||
|   | f026c2c541 | ||
|   | 4d20309ffe | ||
|   | 65439ba023 | ||
|   | 86162f3f47 | ||
|   | b98e83ee91 | ||
|   | d59197fafe | ||
|   | b66c86c9ee | 
							
								
								
									
										106
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,3 +1,69 @@ | |||||||
|  | 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> | ||||||
|  |  | ||||||
|  |     rc_find_pids: namespace fix | ||||||
|  |      | ||||||
|  |     Ignore namespaces if there are errors reading either the pid namespace | ||||||
|  |     for the current process or the process we aare testing. | ||||||
|  |      | ||||||
|  |     This fixes https://github.com/openrc/openrc/issues/180. | ||||||
|  |  | ||||||
|  | commit 86162f3f47c393fc173de0458eeeb322c0bb61f2 | ||||||
|  | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  |  | ||||||
|  |     version 0.34.7 | ||||||
|  |  | ||||||
|  | commit b98e83ee9195eb052fafebc440515f0b2d055a91 | ||||||
|  | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  |  | ||||||
|  |     Update ChangeLog | ||||||
|  |  | ||||||
|  | commit d59197fafef164fe7319f9d87f544a8cc8e25044 | ||||||
|  | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  |  | ||||||
|  |     start-stop-daemon: do not use do_stop to verify whether a daemon is running | ||||||
|  |      | ||||||
|  |     X-Gentoo-Bug: 636574 | ||||||
|  |     X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=636574 | ||||||
|  |  | ||||||
|  | commit b66c86c9ee6d34d0a9d77140b8e7612709ba19d1 | ||||||
|  | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  |  | ||||||
|  |     version 0.34.6 | ||||||
|  |  | ||||||
|  | commit f7eb236f6fd8c10af211c6667940e8e1650c12da | ||||||
|  | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
|  |  | ||||||
|  |     Update ChangeLog | ||||||
|  |  | ||||||
| commit 1936d73eb1aecf31029d53e75e6bb14e307f8e1c | commit 1936d73eb1aecf31029d53e75e6bb14e307f8e1c | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | Author: William Hubbs <w.d.hubbs@gmail.com> | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||||
| @@ -1580,43 +1646,3 @@ Commit: William Hubbs <w.d.hubbs@gmail.com> | |||||||
|     selinux: fix SIGSEGV with invalid contexts |     selinux: fix SIGSEGV with invalid contexts | ||||||
|      |      | ||||||
|     Fixes: https://github.com/openrc/openrc/issues/104 |     Fixes: https://github.com/openrc/openrc/issues/104 | ||||||
|  |  | ||||||
| commit 4f9bd7e4db185ce6debbebb5242344d8ffadc3ae |  | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
|  |  | ||||||
|     init.d/loopback.in: drop the route to the loopback interface on Linux |  | ||||||
|      |  | ||||||
|     This is related to #103. |  | ||||||
|  |  | ||||||
| commit bf539f2196290864ce5c5fd0d679b74ee016e2da |  | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
|  |  | ||||||
|     init.d/mount-ro: do not remount /usr read only if it is premounted |  | ||||||
|      |  | ||||||
|     X-Gentoo-Bug: 573760 |  | ||||||
|     X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=573760 |  | ||||||
|  |  | ||||||
| commit 20b60ea904612669dfb744beffcd8e7e447f69ef |  | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
|  |  | ||||||
|     conf.d/net-online: clarify comment about interfaces setting |  | ||||||
|      |  | ||||||
|     This setting refers to all interfaces that support ethernet |  | ||||||
|  |  | ||||||
| commit f53c8baef3a6215077c00901759cbbcbe8f10e9b |  | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
|  |  | ||||||
|     init.d/net-online: remove interfaces and timeout from local declarations |  | ||||||
|      |  | ||||||
|     X-Gentoo-Bug:  598621 |  | ||||||
|     X-Gentoo-Bug-URL:  https://bugs.gentoo.org/show_bug.cgi?id=598621 |  | ||||||
|  |  | ||||||
| commit be06cd250e12e63b8eb704bb2508e06fb9791251 |  | ||||||
| Author: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> |  | ||||||
|  |  | ||||||
|     src/rc/rc: do not try to start services if fork fails |  | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| NAME=		openrc | NAME=		openrc | ||||||
| VERSION=	0.34.5 | VERSION=	0.34.8 | ||||||
| PKG=		${NAME}-${VERSION} | 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}. | with S6. The default is /var/svc.d/${RC_SVCNAME}. | ||||||
| .It Ar s6_svwait_options_start | .It Ar s6_svwait_options_start | ||||||
| The options to pass to s6-svwait when starting the service via s6. | 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 | .It Ar s6_service_timeout_stop | ||||||
| The amount of time, in milliseconds, s6-svc should wait for the service | 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 | .It Ar start_stop_daemon_args | ||||||
| List of arguments passed to start-stop-daemon when starting the daemon. | List of arguments passed to start-stop-daemon when starting the daemon. | ||||||
| .It Ar command | .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 | 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. | 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 | s6_service_timeout_stop - the amount of time, in milliseconds, s6-svc | ||||||
| should wait for a service to go down when stopping. | 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}" | [ -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() | s6_start() | ||||||
| { | { | ||||||
| 	if [ ! -d "${s6_service_path}" ]; then | 	if [ ! -d "${s6_service_path}" ]; then | ||||||
| @@ -41,7 +55,11 @@ s6_stop() | |||||||
|  fi |  fi | ||||||
| 	s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" | 	s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" | ||||||
| 	ebegin "Stopping ${name:-$RC_SVCNAME}" | 	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}") | 	set -- $(s6-svstat "${s6_service_link}") | ||||||
| 	[ "$1" = "down" ] | 	[ "$1" = "down" ] | ||||||
| 	eend $? "Failed to stop ${name:-$RC_SVCNAME}" | 	eend $? "Failed to stop ${name:-$RC_SVCNAME}" | ||||||
|   | |||||||
| @@ -155,7 +155,7 @@ rc_find_pids(const char *exec, const char *const *argv, uid_t uid, pid_t pid) | |||||||
| 			if (rc <= 0) | 			if (rc <= 0) | ||||||
| 				proc_ns[0] = '\0'; | 				proc_ns[0] = '\0'; | ||||||
| 		} | 		} | ||||||
| 		if (strcmp(my_ns, proc_ns)) | 		if (strlen(my_ns) && strlen (proc_ns) && strcmp(my_ns, proc_ns)) | ||||||
| 			continue; | 			continue; | ||||||
| 		if (uid) { | 		if (uid) { | ||||||
| 			snprintf(buffer, sizeof(buffer), "/proc/%d", p); | 			snprintf(buffer, sizeof(buffer), "/proc/%d", p); | ||||||
|   | |||||||
| @@ -279,6 +279,7 @@ int main(int argc, char **argv) | |||||||
| 	int stdout_fd; | 	int stdout_fd; | ||||||
| 	int stderr_fd; | 	int stderr_fd; | ||||||
| 	pid_t pid, spid; | 	pid_t pid, spid; | ||||||
|  | 	RC_PIDLIST *pids; | ||||||
| 	int i; | 	int i; | ||||||
| 	char *svcname = getenv("RC_SVCNAME"); | 	char *svcname = getenv("RC_SVCNAME"); | ||||||
| 	RC_STRINGLIST *env_list; | 	RC_STRINGLIST *env_list; | ||||||
| @@ -683,10 +684,14 @@ int main(int argc, char **argv) | |||||||
| 	else | 	else | ||||||
| 		pid = 0; | 		pid = 0; | ||||||
|  |  | ||||||
| 	if (do_stop(applet, exec, (const char * const *)margv, pid, uid, | 	if (pid) | ||||||
| 		0, test, false) > 0) | 		pids = rc_find_pids(NULL, NULL, 0, pid); | ||||||
|  | 	else | ||||||
|  | 		pids = rc_find_pids(exec, (const char * const *) argv, uid, 0); | ||||||
|  | 	if (pids) | ||||||
| 		eerrorx("%s: %s is already running", applet, exec); | 		eerrorx("%s: %s is already running", applet, exec); | ||||||
|  |  | ||||||
|  | 	free(pids); | ||||||
| 	if (test) { | 	if (test) { | ||||||
| 		if (rc_yesno(getenv("EINFO_QUIET"))) | 		if (rc_yesno(getenv("EINFO_QUIET"))) | ||||||
| 			exit (EXIT_SUCCESS); | 			exit (EXIT_SUCCESS); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user