summaryrefslogtreecommitdiff
path: root/pkg/rootless/rootless_linux.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-04-13 03:07:48 -0700
committerGitHub <noreply@github.com>2019-04-13 03:07:48 -0700
commit37598ab896b9d53b9f7dbfc75adf26af4fdc4a95 (patch)
tree94d6ae7e1c9ce33f00e3977ddeaacbca83aac365 /pkg/rootless/rootless_linux.go
parent852ca40665d7a0b08ee749e08cb46625c9763f35 (diff)
parent814066ee3b6047c3a582d3bfb508895763379acb (diff)
downloadpodman-37598ab896b9d53b9f7dbfc75adf26af4fdc4a95.tar.gz
podman-37598ab896b9d53b9f7dbfc75adf26af4fdc4a95.tar.bz2
podman-37598ab896b9d53b9f7dbfc75adf26af4fdc4a95.zip
Merge pull request #2915 from giuseppe/rootless-do-not-block-sigtstp
rootless: do not block SIGTSTP
Diffstat (limited to 'pkg/rootless/rootless_linux.go')
-rw-r--r--pkg/rootless/rootless_linux.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/pkg/rootless/rootless_linux.go b/pkg/rootless/rootless_linux.go
index 1d1b1713d..2c99f41a4 100644
--- a/pkg/rootless/rootless_linux.go
+++ b/pkg/rootless/rootless_linux.go
@@ -28,6 +28,10 @@ extern int reexec_userns_join(int userns, int mountns);
*/
import "C"
+const (
+ numSig = 65 // max number of signals
+)
+
func runInUser() error {
os.Setenv("_CONTAINERS_USERNS_CONFIGURED", "done")
return nil
@@ -283,7 +287,15 @@ func BecomeRootInUserNS() (bool, int, error) {
c := make(chan os.Signal, 1)
- gosignal.Notify(c)
+ signals := []os.Signal{}
+ for sig := 0; sig < numSig; sig++ {
+ if sig == int(syscall.SIGTSTP) {
+ continue
+ }
+ signals = append(signals, syscall.Signal(sig))
+ }
+
+ gosignal.Notify(c, signals...)
defer gosignal.Reset()
go func() {
for s := range c {