$ more dummy.sh get-pid-of-background-process-and-kill.sh
::::::::::::::
dummy.sh
::::::::::::::
#!/bin/sh
for i in `seq 1 1024`; do
date -R
sleep 3
done
::::::::::::::
get-pid-of-background-process-and-kill.sh
::::::::::::::
#!/bin/sh
PID_DIR=./var/run
mkdir -p ${PID_DIR} 2> /dev/null
PID_FILE=${PID_DIR}/dummy.id
#
# Invoke a background process
# (i.e. ssh tunneling process that needs to keep on running while specific procudures are executed via it ... or else
#
./dummy.sh &
echo $! > ${PID_FILE}
echo "PID:`cat ${PID_FILE}` is running as a background process..."
#
# Do something as needed
#
sleep 10
#
# Kill the backgound process after the above procedure
#
kill `cat ${PID_FILE}`
#
# Cleanup
#
if [ $? = 0 ] ; then
rm -f ${PID_FILE}
echo "${PID_FILE} has been removed."
fi
$ ./get-pid-of-background-process-and-kill.sh
PID:1197 is running as a background process...
Wed, 19 Jan 2022 17:01:55 +0900
Wed, 19 Jan 2022 17:01:58 +0900
Wed, 19 Jan 2022 17:02:02 +0900
Wed, 19 Jan 2022 17:02:05 +0900
./get-pid-of-background-process-and-kill.sh: line 30: 1197 Terminated ./dummy.sh
./var/run/dummy.id has been removed.
↧