Dotfiles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
927 B

10 years ago
#!/bin/bash
echo "[ShedShut v1] Waiting for \"$1\" to finish"
NXC="$IFS";IFS=$'\n'
ps=($(ps xaht | grep -v grep | grep -v "$0" | grep "$1" | awk '{ printf "("$1") "; for (i=5; i<=NF; i++) printf $i" "; printf "\n" }'))
IFS="$NXC"
echo "Expression matches on:"; for i in "${ps[@]}"; do echo " $i"; done
#echo "Filtering Keywords: 'grep', '$0'"
if test -z "$2"; then cmd="shutdown -h now"; else cmd="$2"; fi
echo "Sheduled Command: $cmd"
if ! test `id -u` = 0; then echo "WARNING: Your Command may not work as user '$(id -un)'"; fi
f="date +%H:%M:%S"
watch() {
declare -g -a watch_pids=($(ps xaht | grep -v grep | grep -v "$0" | grep "$1" | awk '{ print $1 }'))
if test ${#watch_pids[@]} -gt 0; then
echo "[$($f)] Processes: ${watch_pids[@]}"
return 0
else
echo "[$($f)] No Processes."
return 1
fi
}
while watch $1; do sleep 60; done
echo "[$($f)] Shutting down: $cmd"
$cmd