Create env with docker:
docker run --rm --name buster --tty --detach debian:buster
docker exec buster bash -c 'apt-get update && apt-get install bash -y'
docker exec -ti buster /bin/bash
Create a script with the trap function in it
cat > t.sh <<EOF
LF="/var/lock/t"
# Cleanup function to remove lock
cleanup() {
echo "INFO [\$\$]: Caught signal - deleting \${LF}"
rm -f "\${LF}"
echo "Execution time: \${SECONDS}s"
}
lock() {
(set -C; echo "\$\$" > "\${LF}") 2>/dev/null
if [[ \$? -ne 0 ]]; then
echo "ERROR [\$\$]: Lock File exists - exiting"
exit 1
else
trap 'exit 2' 1 2 15 17 23
trap 'cleanup' EXIT
echo "INFO[\$\$]: Created lock file: \${LF}"
fi
}
lock
echo -n sleeping some...
for i in {0..9}; do
sleep 1
done
EOF