aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/pkill.test1
-rw-r--r--toys/posix/ps.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/tests/pkill.test b/tests/pkill.test
index 7a20ae5c..0bea32ab 100755
--- a/tests/pkill.test
+++ b/tests/pkill.test
@@ -63,6 +63,7 @@ killall yes >/dev/null 2>&1
yes >/dev/null &
proc1=$!
+sleep 1
yes >/dev/null &
proc2=$!
sleep 1
diff --git a/toys/posix/ps.c b/toys/posix/ps.c
index e5adc192..4f8d75a9 100644
--- a/toys/posix/ps.c
+++ b/toys/posix/ps.c
@@ -980,6 +980,8 @@ static char *parse_rest(void *data, char *str, int len)
if (isdigit(*str)) {
ll[pl->len] = xstrtol(str, &end, 10);
if (end==(len+str)) num++;
+ // For pkill, -s 0 represents pkill's session id.
+ if (pl==&TT.ss && ll[pl->len]==0) ll[pl->len] = getsid(0);
}
if (pl==&TT.pp || pl==&TT.ss) {