33 lines
688 B
Bash
Executable File
33 lines
688 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script spawns child processes to test process group cleanup
|
|
echo "Parent process started with PID $$"
|
|
|
|
# Spawn multiple child processes
|
|
for i in {1..3}; do
|
|
(
|
|
# Child process
|
|
child_pid=$BASHPID
|
|
echo "Child $i started with PID $child_pid"
|
|
|
|
# Spawn a grandchild that runs for a long time
|
|
(
|
|
grandchild_pid=$BASHPID
|
|
echo "Grandchild of child $i started with PID $grandchild_pid"
|
|
# Keep running for 60 seconds
|
|
for j in {1..60}; do
|
|
sleep 1
|
|
done
|
|
) &
|
|
|
|
# Keep the child running
|
|
for j in {1..60}; do
|
|
sleep 1
|
|
done
|
|
) &
|
|
done
|
|
|
|
# Keep the parent running
|
|
echo "Parent process waiting..."
|
|
wait
|