podman

Форк
0
/
signal_linux.go 
98 строк · 2.6 Кб
1
//go:build linux && !mips && !mipsle && !mips64 && !mips64le
2

3
// Signal handling for Linux only.
4
package signal
5

6
// Copyright 2013-2018 Docker, Inc.
7

8
// NOTE: this package has originally been copied from github.com/docker/docker.
9

10
import (
11
	"syscall"
12

13
	"golang.org/x/sys/unix"
14
)
15

16
const (
17
	sigrtmin = 34
18
	sigrtmax = 64
19

20
	SIGWINCH = syscall.SIGWINCH // For cross-compilation with Windows
21
)
22

23
// SignalMap is a map of Linux signals.
24
var SignalMap = map[string]syscall.Signal{
25
	"ABRT":     unix.SIGABRT,
26
	"ALRM":     unix.SIGALRM,
27
	"BUS":      unix.SIGBUS,
28
	"CHLD":     unix.SIGCHLD,
29
	"CLD":      unix.SIGCLD,
30
	"CONT":     unix.SIGCONT,
31
	"FPE":      unix.SIGFPE,
32
	"HUP":      unix.SIGHUP,
33
	"ILL":      unix.SIGILL,
34
	"INT":      unix.SIGINT,
35
	"IO":       unix.SIGIO,
36
	"IOT":      unix.SIGIOT,
37
	"KILL":     unix.SIGKILL,
38
	"PIPE":     unix.SIGPIPE,
39
	"POLL":     unix.SIGPOLL,
40
	"PROF":     unix.SIGPROF,
41
	"PWR":      unix.SIGPWR,
42
	"QUIT":     unix.SIGQUIT,
43
	"SEGV":     unix.SIGSEGV,
44
	"STKFLT":   unix.SIGSTKFLT,
45
	"STOP":     unix.SIGSTOP,
46
	"SYS":      unix.SIGSYS,
47
	"TERM":     unix.SIGTERM,
48
	"TRAP":     unix.SIGTRAP,
49
	"TSTP":     unix.SIGTSTP,
50
	"TTIN":     unix.SIGTTIN,
51
	"TTOU":     unix.SIGTTOU,
52
	"URG":      unix.SIGURG,
53
	"USR1":     unix.SIGUSR1,
54
	"USR2":     unix.SIGUSR2,
55
	"VTALRM":   unix.SIGVTALRM,
56
	"WINCH":    unix.SIGWINCH,
57
	"XCPU":     unix.SIGXCPU,
58
	"XFSZ":     unix.SIGXFSZ,
59
	"RTMIN":    sigrtmin,
60
	"RTMIN+1":  sigrtmin + 1,
61
	"RTMIN+2":  sigrtmin + 2,
62
	"RTMIN+3":  sigrtmin + 3,
63
	"RTMIN+4":  sigrtmin + 4,
64
	"RTMIN+5":  sigrtmin + 5,
65
	"RTMIN+6":  sigrtmin + 6,
66
	"RTMIN+7":  sigrtmin + 7,
67
	"RTMIN+8":  sigrtmin + 8,
68
	"RTMIN+9":  sigrtmin + 9,
69
	"RTMIN+10": sigrtmin + 10,
70
	"RTMIN+11": sigrtmin + 11,
71
	"RTMIN+12": sigrtmin + 12,
72
	"RTMIN+13": sigrtmin + 13,
73
	"RTMIN+14": sigrtmin + 14,
74
	"RTMIN+15": sigrtmin + 15,
75
	"RTMAX-14": sigrtmax - 14,
76
	"RTMAX-13": sigrtmax - 13,
77
	"RTMAX-12": sigrtmax - 12,
78
	"RTMAX-11": sigrtmax - 11,
79
	"RTMAX-10": sigrtmax - 10,
80
	"RTMAX-9":  sigrtmax - 9,
81
	"RTMAX-8":  sigrtmax - 8,
82
	"RTMAX-7":  sigrtmax - 7,
83
	"RTMAX-6":  sigrtmax - 6,
84
	"RTMAX-5":  sigrtmax - 5,
85
	"RTMAX-4":  sigrtmax - 4,
86
	"RTMAX-3":  sigrtmax - 3,
87
	"RTMAX-2":  sigrtmax - 2,
88
	"RTMAX-1":  sigrtmax - 1,
89
	"RTMAX":    sigrtmax,
90
}
91

92
// IsSignalIgnoredBySigProxy determines whether sig-proxy should ignore syscall signal
93
func IsSignalIgnoredBySigProxy(s syscall.Signal) bool {
94
	// Ignore SIGCHLD and SIGPIPE - these are most likely intended for the podman command itself.
95
	// SIGURG was added because of golang 1.14 and its preemptive changes causing more signals to "show up".
96
	// https://github.com/containers/podman/issues/5483
97
	return s == syscall.SIGCHLD || s == syscall.SIGPIPE || s == syscall.SIGURG
98
}
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.