• Russ Cox's avatar
    runtime: fix running under nohup · f3407f44
    Russ Cox authored
    There are two ways nohup(1) might be implemented:
    it might mask away the signal, or it might set the handler
    to SIG_IGN, both of which are inherited across fork+exec.
    So two fixes:
    
    * Make sure to preserve the inherited signal mask at
    minit instead of clearing it.
    
    * If the SIGHUP handler is SIG_IGN, leave it that way.
    
    Fixes #4491.
    
    R=golang-dev, mikioh.mikioh, iant
    CC=golang-dev
    https://golang.org/cl/7308102
    f3407f44
os_openbsd.h 861 Bytes
// Copyright 2010 The Go Authors.  All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#define SIG_DFL ((void*)0)
#define SIG_IGN ((void*)1)
#define SIGHUP 1

#define SIG_BLOCK 1
#define SIG_UNBLOCK 2
#define SIG_SETMASK 3

struct sigaction;

void	runtime·raisesigpipe(void);
void	runtime·setsig(int32, void(*)(int32, Siginfo*, void*, G*), bool);
void	runtime·sigpanic(void);

void	runtime·setitimer(int32, Itimerval*, Itimerval*);
void	runtime·sigaction(int32, struct sigaction*, struct sigaction*);
void	runtime·sigaltstack(Sigaltstack*, Sigaltstack*);
void	runtime·sighandler(int32 sig, Siginfo *info, void *context, G *gp);
Sigset	runtime·sigprocmask(int32, Sigset);
int32	runtime·sysctl(uint32*, uint32, byte*, uintptr*, byte*, uintptr);

#define	NSIG 33
#define	SI_USER	0