Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e50d51ed9f | ||
|
|
97a254f599 | ||
|
|
1d20aa10e6 | ||
|
|
e92e81d9fe | ||
|
|
bed1a45192 | ||
|
|
34d9dbf1e3 | ||
|
|
0287aa6588 | ||
|
|
1732c70fb5 | ||
|
|
263dde90c2 | ||
|
|
422795e2ce | ||
|
|
00ad99a292 | ||
|
|
f026c2c541 | ||
|
|
4d20309ffe | ||
|
|
65439ba023 | ||
|
|
86162f3f47 | ||
|
|
b98e83ee91 | ||
|
|
d59197fafe | ||
|
|
b66c86c9ee | ||
|
|
f7eb236f6f | ||
|
|
1936d73eb1 | ||
|
|
58872fc090 |
196
ChangeLog
196
ChangeLog
@@ -1,3 +1,151 @@
|
||||
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>
|
||||
|
||||
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
|
||||
Author: William Hubbs <w.d.hubbs@gmail.com>
|
||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
|
||||
|
||||
fix issue with --reexec call
|
||||
|
||||
commit 58872fc090af5047547bc561a5e58c50be0fc235
|
||||
Author: William Hubbs <w.d.hubbs@gmail.com>
|
||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
|
||||
|
||||
version 0.34.5
|
||||
|
||||
commit fc35eb90cab625966ca718a80dd0d38dfffe05b8
|
||||
Author: William Hubbs <w.d.hubbs@gmail.com>
|
||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
|
||||
|
||||
Update ChangeLog
|
||||
|
||||
commit b18be3f970eba04589977438faaa726b5c3a6cd2
|
||||
Author: William Hubbs <w.d.hubbs@gmail.com>
|
||||
Commit: William Hubbs <w.d.hubbs@gmail.com>
|
||||
@@ -1554,51 +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
|
||||
|
||||
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
|
||||
VERSION= 0.34.4
|
||||
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}"
|
||||
|
||||
@@ -155,7 +155,7 @@ rc_find_pids(const char *exec, const char *const *argv, uid_t uid, pid_t pid)
|
||||
if (rc <= 0)
|
||||
proc_ns[0] = '\0';
|
||||
}
|
||||
if (strcmp(my_ns, proc_ns))
|
||||
if (strlen(my_ns) && strlen (proc_ns) && strcmp(my_ns, proc_ns))
|
||||
continue;
|
||||
if (uid) {
|
||||
snprintf(buffer, sizeof(buffer), "/proc/%d", p);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -279,6 +279,7 @@ int main(int argc, char **argv)
|
||||
int stdout_fd;
|
||||
int stderr_fd;
|
||||
pid_t pid, spid;
|
||||
RC_PIDLIST *pids;
|
||||
int i;
|
||||
char *svcname = getenv("RC_SVCNAME");
|
||||
RC_STRINGLIST *env_list;
|
||||
@@ -656,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 */
|
||||
@@ -683,10 +691,14 @@ int main(int argc, char **argv)
|
||||
else
|
||||
pid = 0;
|
||||
|
||||
if (do_stop(applet, exec, (const char * const *)margv, pid, uid,
|
||||
0, test, false) > 0)
|
||||
if (pid)
|
||||
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);
|
||||
|
||||
free(pids);
|
||||
if (test) {
|
||||
if (rc_yesno(getenv("EINFO_QUIET")))
|
||||
exit (EXIT_SUCCESS);
|
||||
|
||||
@@ -159,10 +159,11 @@ 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", "--reexec", (char *) NULL);
|
||||
execlp("supervise-daemon", "supervise-daemon", svcname, "--reexec",
|
||||
(char *) NULL);
|
||||
syslog(LOG_ERR, "Unable to execute supervise-daemon: %s",
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
@@ -179,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)
|
||||
@@ -434,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);
|
||||
@@ -445,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