github.com/vmware/govmomi@v0.51.0/cli/vm/guest/kill.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package guest 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 ) 13 14 type kill struct { 15 *GuestFlag 16 17 pids pidSelector 18 } 19 20 func init() { 21 cli.Register("guest.kill", &kill{}) 22 } 23 24 func (cmd *kill) Register(ctx context.Context, f *flag.FlagSet) { 25 cmd.GuestFlag, ctx = newGuestProcessFlag(ctx) 26 cmd.GuestFlag.Register(ctx, f) 27 28 f.Var(&cmd.pids, "p", "Process ID") 29 } 30 31 func (cmd *kill) Process(ctx context.Context) error { 32 if err := cmd.GuestFlag.Process(ctx); err != nil { 33 return err 34 } 35 return nil 36 } 37 38 func (cmd *kill) Description() string { 39 return `Kill process ID on VM. 40 41 Examples: 42 govc guest.kill -vm $name -p 12345` 43 } 44 45 func (cmd *kill) Run(ctx context.Context, f *flag.FlagSet) error { 46 m, err := cmd.ProcessManager() 47 if err != nil { 48 return err 49 } 50 51 for _, pid := range cmd.pids { 52 if err := m.TerminateProcess(ctx, cmd.Auth(), pid); err != nil { 53 return err 54 } 55 } 56 57 return nil 58 }