1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg
Sebastiaan van Stijn 735e250326
pkg/process: Alive(): fix PID 0, -1, negative values
unix.Kill() does not produce an error for PID 0, -1. As a result, checking
process.Alive() would return "true" for both 0 and -1 on macOS (and previously
on Linux as well).

Let's shortcut these values to consider them "not alive", to prevent someone
trying to kill them.

A basic test was added to check the behavior.

Given that the intent of these functions is to handle single processes, this patch
also prevents 0 and negative values to be used.

From KILL(2): https://man7.org/linux/man-pages/man2/kill.2.html

    If pid is positive, then signal sig is sent to the process with
    the ID specified by pid.

    If pid equals 0, then sig is sent to every process in the process
    group of the calling process.

    If pid equals -1, then sig is sent to every process for which the
    calling process has permission to send signals, except for
    process 1 (init), but see below.

    If pid is less than -1, then sig is sent to every process in the
    process group whose ID is -pid.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-11-04 01:50:26 +01:00
..
aaparser
archive Merge pull request #44273 from thaJeztah/use_walkdir 2022-10-21 02:28:56 +02:00
authorization pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
broadcaster
capabilities
chrootarchive pkg/chrootarchive: gofumpt test files 2022-10-16 14:09:06 +02:00
containerfs pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
devicemapper pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
directory Merge pull request #44251 from thaJeztah/pkg_dir_cleanup 2022-10-15 22:48:19 +02:00
dmesg
fileutils pkg/fileutils: ReadSymlinkedDirectory: preserve underlying error 2022-10-16 20:15:08 +02:00
homedir Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
idtools pkg/idtools: remove execCmd() utility 2022-11-01 21:13:10 +01:00
ioutils pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
jsonmessage pkg/jsonmessage: export "Stream" interface 2022-08-29 16:15:37 +02:00
longpath
loopback pkg/loopback: use ioctl helpers from x/sys/unix 2022-10-08 21:20:29 +02:00
namesgenerator Sort entries in pkg/namesgenerator 2022-11-01 23:13:34 +00:00
parsers pkg/parsers/kernel: un-export Utsname 2022-11-02 10:55:54 +01:00
pidfile pkg/pidfile, pkg/process: use single implementation for process alive 2022-11-04 01:50:26 +01:00
platform all: use unix.ByteSliceToString for utsname fields 2022-05-18 17:13:20 -07:00
plugingetter
plugins pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
pools
process pkg/process: Alive(): fix PID 0, -1, negative values 2022-11-04 01:50:26 +01:00
progress refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
reexec Merge pull request #44222 from thaJeztah/godoc_instead_of_readme 2022-10-10 00:06:17 -07:00
stack all: replace strings.Replace with strings.ReplaceAll 2022-05-09 19:45:40 +08:00
stdcopy refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
streamformatter
stringid pkg: replace some README's with GoDoc package descriptions 2022-09-30 17:11:37 +02:00
sysinfo pkg: replace some README's with GoDoc package descriptions 2022-09-30 17:11:37 +02:00
system move pkg/system: process to a separate package 2022-11-04 01:50:23 +01:00
tailfile pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
tarsum pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
useragent
README.md

pkg/ is a collection of utility packages used by the Moby project without being specific to its internals.

Utility packages are kept separate from the moby core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Moby organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!