Unified shutdown and init to use 3 second wait between SIGTERM and
SIGKILL. Defined this value in init.h (WAIT_BETWEEN_SIGNALS) for easy modification. Updated documentation to address Debian bug #375274.
This commit is contained in:
parent
7b1d470949
commit
d27e34754a
@ -1,4 +1,17 @@
|
|||||||
sysvinit (2.91) UNRELEASED; urgency=low
|
sysvinit (2.92) unreleased; urgency=low
|
||||||
|
|
||||||
|
[ Jesse Smith ]
|
||||||
|
|
||||||
|
* The shutdown and init commands were using different default delays between
|
||||||
|
sending processes SIGTERM and SIGKILL - they were 3 and 5 seconds, respectively.
|
||||||
|
Unified these on 3 seconds, using a new defined value in init.h.
|
||||||
|
Updated shutdown manual page to reflect the change and better explain
|
||||||
|
how -t and -n flags work.
|
||||||
|
Updated the init manual page with the new default value.
|
||||||
|
The updated documentation resolves Debian bug #375274.
|
||||||
|
|
||||||
|
|
||||||
|
sysvinit (2.91) world; urgency=low
|
||||||
|
|
||||||
[ Jesse Smith ]
|
[ Jesse Smith ]
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ otherwise request would be silently ignored.
|
|||||||
.PP
|
.PP
|
||||||
\fBtelinit\fP can tell \fBinit\fP how long it should wait
|
\fBtelinit\fP can tell \fBinit\fP how long it should wait
|
||||||
between sending processes the SIGTERM and SIGKILL signals. The default
|
between sending processes the SIGTERM and SIGKILL signals. The default
|
||||||
is 5 seconds, but this can be changed with the \fB-t\fP option.
|
is 3 seconds, but this can be changed with the \fB-t\fP option.
|
||||||
.PP
|
.PP
|
||||||
\fBtelinit -e\fP tells \fBinit\fP to change the environment
|
\fBtelinit -e\fP tells \fBinit\fP to change the environment
|
||||||
for processes it spawns.
|
for processes it spawns.
|
||||||
|
@ -100,8 +100,14 @@ will be sent to all users.
|
|||||||
.\"}}}
|
.\"}}}
|
||||||
.\"{{{ -t sec
|
.\"{{{ -t sec
|
||||||
.IP "\fB\-t\fP \fIsec\fP"
|
.IP "\fB\-t\fP \fIsec\fP"
|
||||||
Tell \fBinit\fP(8) to wait \fIsec\fP seconds between sending processes the
|
Tell \fBinit\fP(8) to wait \fIsec\fP seconds between sending all processes the
|
||||||
warning and the kill signal, before changing to another runlevel.
|
warning (SIGTERM) and the kill signal (SIGKILL), before changing to another runlevel.
|
||||||
|
The default time, if no value is specified, between these two signals is
|
||||||
|
three seconds. Warning: when shutdown calls init to perform the shutdown (the
|
||||||
|
default behaviour), init checks to see if all processes have terminated
|
||||||
|
and will stop waiting early once its children have all terminated.
|
||||||
|
When shutdown is called with the -n flag, it waits the full time specified
|
||||||
|
(or three seconds) even if all other processes have terminated.
|
||||||
.\"}}}
|
.\"}}}
|
||||||
.\"{{{ time
|
.\"{{{ time
|
||||||
.IP \fItime\fP
|
.IP \fItime\fP
|
||||||
|
@ -133,7 +133,7 @@ int wrote_wtmp_reboot = 1; /* Set when we wrote the reboot record */
|
|||||||
int wrote_utmp_reboot = 1; /* Set when we wrote the reboot record */
|
int wrote_utmp_reboot = 1; /* Set when we wrote the reboot record */
|
||||||
int wrote_wtmp_rlevel = 1; /* Set when we wrote the runlevel record */
|
int wrote_wtmp_rlevel = 1; /* Set when we wrote the runlevel record */
|
||||||
int wrote_utmp_rlevel = 1; /* Set when we wrote the runlevel record */
|
int wrote_utmp_rlevel = 1; /* Set when we wrote the runlevel record */
|
||||||
int sltime = 5; /* Sleep time between TERM and KILL */
|
int sltime = WAIT_BETWEEN_SIGNALS; /* Sleep time between TERM and KILL */
|
||||||
char *argv0; /* First arguments; show up in ps listing */
|
char *argv0; /* First arguments; show up in ps listing */
|
||||||
int maxproclen; /* Maximal length of argv[0] with \0 */
|
int maxproclen; /* Maximal length of argv[0] with \0 */
|
||||||
struct utmp utproto; /* Only used for sizeof(utproto.ut_id) */
|
struct utmp utproto; /* Only used for sizeof(utproto.ut_id) */
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#define INITPID 1 /* pid of first process */
|
#define INITPID 1 /* pid of first process */
|
||||||
#define PIPE_FD 10 /* Fileno of initfifo. */
|
#define PIPE_FD 10 /* Fileno of initfifo. */
|
||||||
#define STATE_PIPE 11 /* used to pass state through exec */
|
#define STATE_PIPE 11 /* used to pass state through exec */
|
||||||
|
#define WAIT_BETWEEN_SIGNALS 3 /* default time to wait between TERM and KILL */
|
||||||
|
|
||||||
/* Failsafe configuration */
|
/* Failsafe configuration */
|
||||||
#define MAXSPAWN 10 /* Max times respawned in.. */
|
#define MAXSPAWN 10 /* Max times respawned in.. */
|
||||||
|
@ -348,7 +348,7 @@ void fastdown()
|
|||||||
/* Kill all processes. */
|
/* Kill all processes. */
|
||||||
fprintf(stderr, "shutdown: sending all processes the TERM signal...\r\n");
|
fprintf(stderr, "shutdown: sending all processes the TERM signal...\r\n");
|
||||||
kill(-1, SIGTERM);
|
kill(-1, SIGTERM);
|
||||||
sleep(sltime ? atoi(sltime) : 3);
|
sleep(sltime ? atoi(sltime) : WAIT_BETWEEN_SIGNALS);
|
||||||
fprintf(stderr, "shutdown: sending all processes the KILL signal.\r\n");
|
fprintf(stderr, "shutdown: sending all processes the KILL signal.\r\n");
|
||||||
(void) kill(-1, SIGKILL);
|
(void) kill(-1, SIGKILL);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user