From ad87ba76474d2bc1f7fc99a2599f6f0011d973a9 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Mon, 31 Jan 2022 17:20:24 +0100 Subject: [PATCH 1/2] execute './.ww4/runExit` on exeit of container exec --- internal/app/wwctl/container/exec/child/main.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/app/wwctl/container/exec/child/main.go b/internal/app/wwctl/container/exec/child/main.go index f35944ea..f40cdd0d 100644 --- a/internal/app/wwctl/container/exec/child/main.go +++ b/internal/app/wwctl/container/exec/child/main.go @@ -85,6 +85,16 @@ func CobraRunE(cmd *cobra.Command, args []string) error { wwlog.Printf(wwlog.ERROR, "%s\n", err) os.Exit(1) } + _, err = os.Stat("./.ww4/runExit") + if os.IsNotExist(err) { + wwlog.Printf(wwlog.DEBUG, "no exit script") + return nil + } + err = syscall.Exec("./.ww4/runExit", []string{""}, os.Environ()) + if err != nil { + wwlog.Printf(wwlog.ERROR, "%s\n", err) + os.Exit(1) + } return nil } From df127b179d8d296db8191b868be9a85286331a7b Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 3 Feb 2022 09:53:16 +0100 Subject: [PATCH 2/2] q --- internal/app/wwctl/container/exec/child/main.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/app/wwctl/container/exec/child/main.go b/internal/app/wwctl/container/exec/child/main.go index f40cdd0d..c1432546 100644 --- a/internal/app/wwctl/container/exec/child/main.go +++ b/internal/app/wwctl/container/exec/child/main.go @@ -85,12 +85,13 @@ func CobraRunE(cmd *cobra.Command, args []string) error { wwlog.Printf(wwlog.ERROR, "%s\n", err) os.Exit(1) } - _, err = os.Stat("./.ww4/runExit") + _, err = os.Stat("./etc/warewulf/runExit") if os.IsNotExist(err) { wwlog.Printf(wwlog.DEBUG, "no exit script") return nil } - err = syscall.Exec("./.ww4/runExit", []string{""}, os.Environ()) + wwlog.Printf(wwlog.INFO, "Running exit script %s\n", path.Join(container.RootFsDir(containerName), "./etc/warewulf/runExit")) + err = syscall.Exec("./etc/warewulf/runExit", []string{""}, os.Environ()) if err != nil { wwlog.Printf(wwlog.ERROR, "%s\n", err) os.Exit(1)