Stop a child process created by the script.
Bash Scripts: Send a signal only to the captured PID of the script’s own child and wait for it to exit.
set -euo pipefail
sleep 30 &
job=$!
kill -TERM "$job"
if wait "$job" 2>/dev/null; then status=0; else status=$?; fi
printf "Terminated: %s\n" "$status"
Expected output EXAMPLE
Terminated: 143
Details
Requires Bash 4 or later. Save as snippet.sh and run bash snippet.sh in an empty working directory. Send a signal only to the captured PID of the script’s own child and wait for it to exit.
PID reuse and broader process supervision require more care in long-lived services.
Tested on Ubuntu 24.04.5 LTS · · GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu) · bash 5.2.21-2ubuntu4; coreutils 9.4-3ubuntu6.3
Test inputs, results and environment
The exact published code ran in a dedicated Linux test container with prepared inputs. Snippet process uid 65534 with a read-only root filesystem and temporary working files. Networking disabled. Fixtures and output records are isolated from the application database. Testing covers this example and its stated checks, not every input, operating system, or runtime version. The Linux container shares its host's kernel; this is not a native Windows test.
- Architecture / host kernel
- x86_64 / 6.18.54.1-microsoft-standard-WSL2
- Snippet identity / locale
- uid=65534, gid=65534 (unprivileged process) / C.UTF-8
- Interpreter invocation
bash -euo pipefail -c <published code>- Container image ID
sha256:ec91410a8f6ec3e985830b5e3a0560306d36f8c1c5ccd91a6699abe707123fa3- Code SHA-256
25e4991629544ab7f6ee1b84bb5004c1149fe6ebb4a6f753ee8e77baba0783de- Dependencies
- bash 5.2.21-2ubuntu4; coreutils 9.4-3ubuntu6.3
Test input setup
These are the prepared inputs used by the test harness. See Details above for the prerequisites and how to run this example.
# No input files required.
Observed standard output
Terminated: 143
Exit code: 0. Standard error: empty. Validation: Exact stdout comparison. System-dependent values above are one recorded run.