github.com/lalkh/containerd@v1.4.3/pkg/process/process.go (about)

     1  /*
     2     Copyright The containerd Authors.
     3  
     4     Licensed under the Apache License, Version 2.0 (the "License");
     5     you may not use this file except in compliance with the License.
     6     You may obtain a copy of the License at
     7  
     8         http://www.apache.org/licenses/LICENSE-2.0
     9  
    10     Unless required by applicable law or agreed to in writing, software
    11     distributed under the License is distributed on an "AS IS" BASIS,
    12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13     See the License for the specific language governing permissions and
    14     limitations under the License.
    15  */
    16  
    17  package process
    18  
    19  import (
    20  	"context"
    21  	"io"
    22  	"time"
    23  
    24  	"github.com/containerd/console"
    25  	"github.com/containerd/containerd/pkg/stdio"
    26  )
    27  
    28  // Process on a system
    29  type Process interface {
    30  	// ID returns the id for the process
    31  	ID() string
    32  	// Pid returns the pid for the process
    33  	Pid() int
    34  	// ExitStatus returns the exit status
    35  	ExitStatus() int
    36  	// ExitedAt is the time the process exited
    37  	ExitedAt() time.Time
    38  	// Stdin returns the process STDIN
    39  	Stdin() io.Closer
    40  	// Stdio returns io information for the container
    41  	Stdio() stdio.Stdio
    42  	// Status returns the process status
    43  	Status(context.Context) (string, error)
    44  	// Wait blocks until the process has exited
    45  	Wait()
    46  	// Resize resizes the process console
    47  	Resize(ws console.WinSize) error
    48  	// Start execution of the process
    49  	Start(context.Context) error
    50  	// Delete deletes the process and its resourcess
    51  	Delete(context.Context) error
    52  	// Kill kills the process
    53  	Kill(context.Context, uint32, bool) error
    54  	// SetExited sets the exit status for the process
    55  	SetExited(status int)
    56  }