detect init started on startup rather than when necessary to avoid re-parenting issues. fixes #7

This commit is contained in:
Naitik Shah 2014-01-06 15:15:45 +05:30
parent ae84a7ab31
commit 2d7fb4c06a

View File

@ -25,6 +25,11 @@ var (
// Time in the past to trigger immediate deadline. // Time in the past to trigger immediate deadline.
timeInPast = time.Now() timeInPast = time.Now()
// Test if init activated by checking ppid on startup since we will get
// re-parented once the old parent is killed and we will end up looking like
// we're init started.
initStarted = os.Getppid() == 1
) )
const ( const (
@ -81,7 +86,7 @@ func (l *listener) Close() error {
var err error var err error
// Init provided sockets dont actually close so we trigger Accept to return // Init provided sockets dont actually close so we trigger Accept to return
// by setting the deadline. // by setting the deadline.
if os.Getppid() == 1 { if initStarted {
if ld, ok := l.Listener.(deadliner); ok { if ld, ok := l.Listener.(deadliner); ok {
err = ld.SetDeadline(timeInPast) err = ld.SetDeadline(timeInPast)
} else { } else {